我想创建如下的查询,但我不确定如何正确编码, 我想让它在StartTime的1小时内返回所有预订,这是我想出的:
SELECT BookingId, StartTime
FROM Booking
WHERE StartTime <=> 1.00
有可能吗?或者有没有办法围绕它?
我在网上找到的所有内容都不是在同一个查询中使用大于,等于和小于全部。
答案 0 :(得分:11)
假设你使用sql server:
WHERE StartTime BETWEEN DATEADD(HOUR, -1, GetDate())
AND DATEADD(HOUR, 1, GetDate())
答案 1 :(得分:5)
如果开始时间是日期时间类型,那么您可以使用类似
的内容SELECT BookingId, StartTime
FROM Booking
WHERE StartTime >= '2012-03-08 00:00:00.000'
AND StartTime <= '2012-03-08 01:00:00.000'
显然你会想要在时间上使用你自己的值,但这应该给你1小时内的所有内容,包括上限和下限。
您可以使用GETDATE()函数获取今天的当前日期。
答案 2 :(得分:3)
declare @starttime datetime = '2012-03-07 22:58:00'
SELECT BookingId, StartTime
FROM Booking
WHERE ABS( DATEDIFF( minute, StartTime, @starttime ) ) <= 60
答案 3 :(得分:2)
这样的东西应该适用于Ep>
SELECT BookingId, StartTime
FROM Booking
WHERE StartTime between dateadd(hour, -1, getdate()) and getdate()