首页 > 解决方案 > 需要 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 是每个班次中的行数。

所需输出 1:移位数据 在此处输入图像描述

所需输出 2:日间数据 在此处输入图像描述

标签: sql-server

解决方案


一个应该起作用的快速技巧是将时间向后移动六个半小时,以便它们将午夜对齐到午夜。

SELECT CAST(dateadd(minute,-390,[DateTime] AS date), [SHIFT], COUNT(*) AS QUANTITY
FROM [YourTable]
GROUP BY CAST(dateadd(minute,-390,[DateTime] AS date), [SHIFT]

推荐阅读