我有两个日期时间字段。我想根据第一个日期时间列不比第二个日期时间列提前8或9小时的条件选择字段。
知道如何解决这个问题吗?
类似的东西:
WHERE ((DATEPART(HOUR, tableA.date1) != (DATEPART(HOUR, tableA.date2))
如果我们有两个日期的日期,例如1月1日晚上1点20分和1月1日09:50 AM,我不确定DATEPART(HOUR,...))是否有效。
答案 0 :(得分:0)
即使DATEDIFF
和MINUTE
中的时间为60
,DATETIMECOL1
使用DATETIMECOL2
并除以8:59am to 4:01pm
也会为您带来精确的差异
SELECT * FROM YourTable
WHERE (DATEDIFF(MINUTE,DATETIMECOL2,DATETIMECOL1)/60) < 8
OR (DATEDIFF(MINUTE,DATETIMECOL2,DATETIMECOL1)/60) > 9
答案 1 :(得分:0)
使用JOIN
。以下查询可能有所帮助 -
SELECT *
FROM your_table a
LEFT JOIN your_table b ON a.id = b.id
WHERE (DATEDIFF(MINUTE, a.date1, b.date2) < 480) OR (DATEDIFF(MINUTE, a.date1, b.date2) < 540)