根据一天中的时间显示数据

时间:2017-05-05 19:35:37

标签: sql sql-server

我有一张表格,显示员工生产的单位数量。它还有交易时间。

是否有可能以这样的方式显示数据:当当前时间在早上7点到下午3点之间时,它应该只显示在那段时间内发生的交易,然后当前时间是下午3点时它应该显示仅显示3-11 pm之间的交易。

示例数据

units | name | TIME
-------------------------
 10 | aa       | 08:33:22
 26 | bb       | 10:33:22
 36 | cc       | 16:33:22
 11 | dd       | 18:33:22

现在如果当前时间是13:00:00,我想要在上午7点到下午3点之间的所有交易,这将是第一个2.但是当时间是15:00:00然后它应该自动显示之间的所有交易下午3点 - 晚上11点

1 个答案:

答案 0 :(得分:1)

您可以使用where

where (datepart(hour, getdate()) between 7 and 14 and
       datepart(hour, transactiondatetime) between 7 and 14
      ) or
      (datepart(hour, getdate()) not between 7 and 14 and
       datepart(hour, transactiondatetime) between 11 and 22
      )