如何从SQL中的当前时间获取所有时间在下一个小时范围内的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从SQL中的当前时间获取所有时间在下一个小时范围内的数据相关的知识,希望对你有一定的参考价值。

我有一张表tblSMSdatetimetime列(以及其他一些列)。

我在接下来的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)

谢谢

答案

如果您以适当的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())

以上是关于如何从SQL中的当前时间获取所有时间在下一个小时范围内的数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL从日期范围内的同一表中的不同记录中获取多个项目的总和(ORACLE)

oracle 获取时间问题!

SQL 按小时获取不同的客户计数

如何从 db2 中的选定日期获取接下来 24 小时的所有数据?

如何在 SQL Server 中获取今天的第一个小时? [复制]

在 bigquery 标准 sql 上提取两个日期之间的小时数