Mysql 选择上午7点到次日上午7点之间的时间

Mysql 选择上午7点到次日上午7点之间的时间,mysql,Mysql,我想计算在第二天早上7点到7点之间我有多少个1和0的值 试想一下,一家酒吧上午10点开门,第二天早上7点关门,他们希望自己的“报告”是针对这一天的 因此,上午7点之前的所有数据都需要添加到前一天 SELECT DATE(delivered), COUNT(*) total, sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount, sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount

我想计算在第二天早上7点到7点之间我有多少个1和0的值

试想一下,一家酒吧上午10点开门,第二天早上7点关门,他们希望自己的“报告”是针对这一天的

因此,上午7点之前的所有数据都需要添加到前一天

SELECT DATE(delivered), COUNT(*) total, 
sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount,
sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount
FROM Wardrobe_CloakTable GROUP BY DATE(delivered)

这几乎可以满足我的需求,问题是我需要在早上7点之前,计算到前一天的所有数据。

类似的方法应该可以:

SELECT DATE(delivered), COUNT(*) total, 
sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount,
sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount
FROM Wardrobe_CloakTable GROUP BY DATE(delivered)
SELECT
CASE WHEN HOUR(delivered) < 7
   THEN CONCAT(DATE(DATE_ADD(delivered, INTERVAL -1 day)), ' 07:00:00')
   ELSE CONCAT(DATE(delivered), ' 07:00:00')
   END as startTime, 
CASE WHEN HOUR(delivered) < 7
   THEN CONCAT(DATE(delivered), ' 07:00:00')
   ELSE CONCAT(DATE(DATE_ADD(delivered, INTERVAL 1 day)), ' 07:00:00')
   END as endTime, 
COUNT(*) total, 
sum(case when isbag = '0' THEN 1 ELSE 0 END) CloakCount,
sum(case when isbag = '1' THEN 1 ELSE 0 END) BagCount
FROM Wardrobe_CloakTable GROUP BY startTime, endTime;
选择
小时(交付)<7时的情况
然后是CONCAT(日期(日期加上(交付,间隔1天)),'07:00:00')
ELSE CONCAT(交付日期,'07:00:00')
以开始的时间结束,
小时(交付)<7时的情况
然后是CONCAT(交付日期),'07:00:00')
ELSE CONCAT(日期(日期加上(交付,间隔1天)),'07:00:00')
以结束时间结束,
总数(*),
求和(当isbag='0'然后1或0结束时的情况)计数,
总和(当isbag='1'然后1或0结束时的情况)行李计数
由startTime和endTime组成的衣橱表组;

我只想提一下,delivered是我的数据库中的一个datetime字段。您想计算斗篷计数和行李计数吗?是的,正确。当isbag=0时,它是一件斗篷。。当isbag=1时,它就是一个包。。但主要的问题是它需要在第二天早上7点到7点之间。这太棒了。。给了我我想要的。!日期上的总数量/行李/斗篷,信息在。。将进一步测试,但谢谢!