SQL时间查询从晚上6点到早上6点

nad*_*adG 2 sql sql-server sql-server-2008

如何计算晚上6点和早上6点后的记录数?

这工作到中午 12 点。

SELECT distinct count(barcode) c 
FROM table1 
where DAY(timestamp) = DAY(GETDATE())
  AND MONTH(timestamp) = MONTH(GETDATE())
  AND YEAR(timestamp) = YEAR(GETDATE())
  AND datepart(hh,timestamp) >= 18 
  AND datepart(hh,timestamp) >= 6;
Run Code Online (Sandbox Code Playgroud)

sge*_*des 8

我想这可能就是你要找的。它从 GETDATE() 调用中删除任何秒数,并向其添加适当的小时数。

SELECT COUNT(barcode)
FROM table1
WHERE timestamp >= DATEADD(HOUR,18,CONVERT(VARCHAR(10), GETDATE(),110))
  AND timestamp <= DATEADD(HOUR,6,CONVERT(VARCHAR(10), GETDATE()+1,110))
Run Code Online (Sandbox Code Playgroud)

SQL 小提琴演示