我正在尝试根据特定条件选择所有列。该条件是日期时间必须介于昨天的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()))
答案 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()
在此构造中没有意义。