获取 sql 之间的日期

get sql date between

我想从 SQL 服务器中的选定日期范围内获取数据。

这是 SQL 查询 (SQL Server 2005)

SELECT  * FROM  slips WHERE  CONVERT(char,  date_Of_Birth, 101)  BETWEEN ('01/08/2019') AND ('21/08/2019') 

它为我提供了数据库中每条记录的结果,我如何获得选定的范围?我只想显示选定的范围。

您可以将 BETWEEN 与日期一起使用 (see also)

SELECT
    * 
FROM slips 
WHERE date_Of_Birth BETWEEN '01/08/2019' AND '21/08/2019'

不要对日期使用 betweenHere 很好地解释了为什么不这样做。

另外,不要对日期使用字符串比较。 SQL 服务器有很多不错的内置日期功能。

我会推荐:

select s.*
from slips s
where s.date_of_birth >= '2019-08-01' and
      s.date_of_birth < '2019-08-22'

如果您想 select 过去 N 个月的单据 - 将 N 替换为月份

Select *
FROM slips 
Where DATEDIFF(MONTH, date_of_birth, GETDATE()) Between 1 and N

如果您想select 过去 N 天的单据 - 将 N 替换为天数

Select *
FROM slips 
Where DATEDIFF(DAY, date_of_birth, GETDATE()) Between 1 and N

如果你想select最近N年的单子 - - 把N换成年份

Select *
FROM slips 
Where DATEDIFF(YEAR, date_of_birth, GETDATE()) Between 1 and N

我假设你的 date_of_birth 是日期类型那么你需要将你的 string 转换为 日期

SELECT  * FROM  slips WHERE  date_Of_Birth  BETWEEN CONVERT(date,  '01/08/2019', 103) AND CONVERT(date,  '21/08/2019', 103) 

如果你的 date_of_birthstring 类型你应该使用这个

SELECT  * FROM  slips WHERE  CONVERT(date,  date_Of_Birth,103)  BETWEEN CONVERT(date,  '01/08/2019', 103) AND CONVERT(date,  '21/08/2019', 103)