过滤Microsoft SQL上的日期

时间:2016-05-31 15:49:17

标签: sql-server

我目前正在使用过滤器从今天的日期到日期和日期之间的日期过滤掉表格中的数据。目前使用where条件

Select * FROM [Snapshot].[dbo].[ABCVIEW] where (getdate() >= fromdate and (todate = '1900-01-01 00:00:00.000')) or getdate() between fromdate and todate

在使用任何过滤器

之前,还有今天的日期

enter image description here

但是我使用的过滤器我无法看到todate = 2016-05-31 00:00:00.000。我试着添加

todate<= getdate() 

进入过滤器但仍无用。在结果中我无法看到今天的日期,例如:todate = 2016-05-31 00:00:00.000请帮助解决这个问题。

2 个答案:

答案 0 :(得分:1)

getdate返回当前时间,该时间大于2016-05-31 00:00:00.000所以如果你想包括昨晚的午夜从getdate()减去1:

Select * 
FROM [Snapshot].[dbo].[ABCVIEW] 
where (getdate() >= fromdate 
    and (todate = '1900-01-01 00:00:00.000')) 
        or getdate()-1 between fromdate and todate

答案 1 :(得分:0)

如果您转换为DATE,您只需要日期.......

SELECT Convert(date, getdate())  

所以你可以使用BETWEEN

.......
CONVERT( Date, fromDate) and CONVERT(Date, DateAdd(  d, 1, toDate))