首页 > 解决方案 > 查询以查找之间的提取时间

问题描述

我是 SQL 的初学者,需要帮助才能在 00.00.00 和 06.00.00 之间在我们的 WMS 中获取一些事务,但无法使其正常工作。

这就是我已经走了多远,

SELECT cast(datreg as time) [time], logguser, l16lcode, partno, l16qty, datreg
FROM L16T3
WHERE datreg > '0000-00-00 00:00:00' 
AND datreg < '9999-99-99 06:00:00'
AND L16T3.l16lcode = 2

我不知道要写什么才能仅在 24.00-06.00 之间进行交易

(使用 SQL Server 2012)

此致

标签: sqlsql-server-2012

解决方案


我会建议:

SELECT cast(datreg as time) as [time], logguser, l16lcode, partno, l16qty, datreg
FROM L16T3 l
WHERE CONVERT(time, l.datreg) >= '00:00:00' AND
      CONVERT(time, l.datreg) < '06:00:00' AND
      l.l16lcode = 2;

您还可以使用以下时间:

WHERE DATEPART(hour, l.datreg) >= 0 AND
      DATEPART(hour, l.datreg) < 6 AND
      l.l16lcode = 2;

但是,如果第二次是 ,则这并不容易概括06:30:00


推荐阅读