如何在SQL中编写WHERE子句以按时间(隔夜)过滤DATETIME列?

时间:2015-04-16 20:36:00

标签: sql datetime

我试图从DateTime表中过滤时间日期以创建两个单独的表:

  • 日班07AM至07PM,
  • 夜班07:00至07:00 - 隔夜

我已经能够使用此查询过滤日班:

SELECT
  tbLogTimeValues.DateTimeStamp
  ,tbLogTimeValues.SeqNo
  ,tbLogTimeValues.FloatVALUE
  ,tbLogTimeValues.ParentID
  ,tbLogTimeValues.OdometerValue
FROM tbLogTimeValues
WHERE datepart("hh", tbLogTimeValues.DateTimeStamp) >= 07
AND datepart("hh",   tbLogTimeValues.DateTimeStamp) <= 19

但我不知道如何过滤夜班。

2 个答案:

答案 0 :(得分:1)

使用NOT BETWEEN

WHERE datepart("hh", tbLogTimeValues.DateTimeStamp) NOT BETWEEN 7 AND 19

答案 1 :(得分:0)

只需将where子句更改为其反向:

WHERE datepart(hour, tbLogTimeValues.DateTimeStamp) < 07 or
      datepart(hour, tbLogTimeValues.DateTimeStamp) > 19