如何在sql中仅比较小时和分钟

时间:2014-09-04 16:09:08

标签: sql sql-server sql-server-2008 tsql sql-server-2008-r2

我在sysjobactivity表中有一个列stop_execution_date。我需要获得仅在凌晨4:10之后运行的工作细节。

我用

尝试了
    cast(DATEPART(hour, sja.stop_execution_date) as varchar)+cast(DATEPART(minute, sja.stop_execution_date) as varchar) >410

但是,如果工作在上午9:05完成,则不接受,因为datepart(小时)是9而datepart(分钟)是5.通过使用+我们得到的是95而不是905,这比不到410。 / p>

请你建议我这样做的好方法。

提前致谢

4 个答案:

答案 0 :(得分:4)

怎么样:

(DATEPART(hour, sja.stop_execution_date) = 4 and (DATEPART(minute, sja.stop_execution_date) > 10)
OR DATEPART(hour, sja.stop_execution_date) > 4

答案 1 :(得分:4)

可以施展时间。

cast(sja.stop_execution_date as time) > '04:10:00.0000000'

答案 2 :(得分:1)

可以改为使用总分钟:

DATEPART(hour, sja.stop_execution_date)*60 + DATEPART(minute, sja.stop_execution_date) > 250

CAST( AS TIME)并比较:

CAST(sja.stop_execution_date as TIME) > '04:10:00'

答案 3 :(得分:0)

使用格式化功能代替CAST:

FORMAT(DATEPART(hour, '2014-09-04 09:05:55'), '00')+
FORMAT(DATEPART(minute, '2014-09-04 09:05:55'), '00') > '0410'