我的表格tblSMS
包含datetime
和time
列(以及其他一些列)。
我会在接下来的2小时内在仪表板上收到所有提醒,因此我想从今天datetime
所在的表中获取数据,并且time
在接下来的2小时内。
我使用了这个存储过程,但它无法正常工作:
select *
from tblSMS
where
SMSTime >= (SELECT Convert(varchar(5), GetDate(), 108))
and (SMSTime <= (SELECT Convert(varchar(5), (Select dateadd (hour, 2, getdate())), 108)))
and Convert(varchar(10), SMSDate, 110) = Convert(varchar(10), GETDATE(), 110)
由于
答案 0 :(得分:1)
如果以正确的time
格式存储,则无需使用datetime
列。最好以datetime
格式进行比较。否则,如果接下来的第二天下降2小时,您可能会遇到麻烦。
select *
from tblSMS
where
SMSDate between getdate() and dateadd(hh, 2, getdate())
如果要将SMSDate
存储为日期
select *
from tblSMS
where
SMSDate + cast(SMSTime as datetime) between getdate() and dateadd(hh, 2, getdate())