简体   繁体   English

SQL 语句在两天而不是午夜获取每日总计

[英]SQL Statement to get Daily Totals across two days instead of Midnight

I recently wrote a query to get daily totals over a month.我最近写了一个查询来获取一个月内的每日总数。 The Query works just fine but it does midnight to midnight.查询工作得很好,但它从午夜到午夜。 I need to find the totals from 7:15 am until 7:15 am the next day.我需要找到从早上 7:15 到第二天早上 7:15 的总数。 We run three shifts starting at 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

Just subtract an offset.只需减去一个偏移量。 A simple way is:一个简单的方法是:

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;

Note that end is a very bad name for a column because it is a SQL keyword.请注意, end是一个非常糟糕的列名称,因为它是一个 SQL 关键字。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM