sql-server - 需要 SQL 查询以获得所需的输出
问题描述
下面是从 PLC 机器填充到 sql server 数据库的示例数据。日期时间、周期时间(生产该材料所用的时间)和班次
A公司(早上6点30分到下午2点30分)、B公司(2点30分到10点30分)、C(10点30分到早上6点30分)有3个班次。上面只显示了C班的样本数据
当我进行 C Shift 计数时,我的查询也应该在早上 6:30 之前获取第二天的数据。其中 A 班应该从上午 6:30 到下午 2:30 获取当天数据。而 B 班应该从下午 2:31 到晚上 10:30 获取当天数据。
下面显示的 QUANITY 是每个班次中的行数。
解决方案
一个应该起作用的快速技巧是将时间向后移动六个半小时,以便它们将午夜对齐到午夜。
SELECT CAST(dateadd(minute,-390,[DateTime] AS date), [SHIFT], COUNT(*) AS QUANTITY
FROM [YourTable]
GROUP BY CAST(dateadd(minute,-390,[DateTime] AS date), [SHIFT]