繁体   English   中英

如何 SELECT 两个日期之间的日期

[英]How to SELECT a date between two dates

如何从 mysql 和 php 的 select 到 2 个日期之间的范围? 例如,工作日从 2022 年 1 月 1 日上午 7:00 开始,到 2022 年 1 月 2 日凌晨 2:00 结束。 我希望从 2022 年 1 月 2 日凌晨 00:00 到凌晨 2:00 收集的所有数据都分组在上一个日期内。

现在我使用这个查询

 SELECT date_format(dateAdded,"%m-%d") as mth,COUNT(productID) as total, productID FROM statisticsNW WHERE userID = "35" AND productID = "1193'" AND YEAR(dateAdded) = "2022" AND month(dateAdded) = "01" GROUP by year(dateAdded),month(dateAdded), day(dateAdded) ORDER by year(dateAdded),month(dateAdded)

结果是这样,但“总数”是错误的,因为是同一天的 00:00 到 23:59。 我想要的正确查询是从第二天的 7:00 到 6:59。 但是从00:00到6:59的数据必须在前一天计算。

在此处输入图像描述

您可以将 5 小时添加到 start_time 和 end_time,因此看起来轮班从午夜开始

select DATEDIFF(HH,cast('2022-01-24 19:00:00' as datetime),cast('2022-01-25 00:00:00' as datetime)) as time_5_hrs

结果

select dateadd(HOUR,5,cast('2022-01-02 19:00:00' as datetime)) as starttime, dateadd(HOUR,5,cast('2022-01-03 02:00:00' as datetime)) as endtime,datediff(HH,dateadd(HOUR,5,cast('2022-01-02 19:00:00' as datetime)),dateadd(HOUR,5,cast('2022-01-03 02:00:00' as datetime))) diff

在此处输入图像描述

通过这样做,您可以获得两个日期相同,并且您可以将其分组为一天。

我已经解决了

SELECT DATE_SUB(DATE_ADD("2017-06-15 5:30:00", INTERVAL 24 HOUR), INTERVAL 1 MINUTE); 

暂无
暂无

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

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