选择介于昨天的日期时间和今天的日期和时间之间的所有行

时间:2019-11-20 17:39:22

标签: sql tsql

我正在尝试根据特定条件选择所有列。该条件是日期时间必须介于昨天的5:30 pm和今天的6pm之间。我唯一的问题是如何在下午5:30到达?我知道如何获得下午5点,但我将如何增加分钟数。

这是我根据此post

使用的查询
SELECT * 
FROM tbl 
WHERE datelog BETWEEN dateadd(hour,17,datediff(day,1,GETDATE())) 
                  AND dateadd(hour,18,datediff(day,0,GETDATE()))

2 个答案:

答案 0 :(得分:1)

您当前的dateadd将于昨天下午5:00返回。只需使用另一个dateadd向该dateadd添加30分钟即可。它看起来像:dateadd(minute, 30, [your current dateadd])

使用您的代码:

dateadd(MINUTE, 30, dateadd(hour, 17, datediff(day, 1, GETDATE())))

答案 1 :(得分:0)

如果您使用的是SQL Server,我希望:

where datelog >= dateadd(minute, 17*60+30, dateadd(hour, -24, convert(date, getdate()))) and
      datelog < dateadd(minute, 18*60, convert(date, getdate()))

datediff()在此构造中没有意义。

相关问题