[英]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.