SQL Заявление о получении ежедневных итогов за два дня вместо полуночи - PullRequest
0 голосов
/ 05 февраля 2020

Я недавно написал запрос для получения ежедневных итогов за месяц. Запрос работает просто отлично, но работает с полуночи до полуночи. Мне нужно найти итоги с 7:15 до 7:15 следующего дня. Мы работаем в три смены, начиная с 7:15.

SELECT CONVERT(datetime,CAST(t_stamp AS DATE)), COUNT(bottles) AS 'Good Bottles'
FROM bottles
WHERE t_stamp
    BETWEEN starrt
    AND end
GROUP BY CAST(t_stamp AS DATE)
ORDER BY CAST(t_stamp AS DATE) ASC

1 Ответ

0 голосов
/ 05 февраля 2020

Просто вычтите смещение. Простой способ:

SELECT CAST(DATEADD(minute, -(7 * 60 + 15), t_stamp) AS DATE),
       COUNT(bottles) AS GoodBottles
FROM bottles
WHERE t_stamp BETWEEN starrt AND end
GROUP BY CAST(DATEADD(minute, -(7 * 60 + 15), t_stamp) AS DATE)
ORDER BY CAST(DATEADD(minute, -(7 * 60 + 15), t_stamp) AS DATE) ASC;

Обратите внимание, что end очень плохое имя для столбца, потому что это ключевое слово SQL.

...