我想计算使用MySQL在给定日期范围内发生的星期日的数量...
我的问题是给定的日期不在表中...我只想让SQL在没有任何查询的情况下计算日期。例如:SELECT DATEDIFF(date1,date2);当然,不需要任何表来查询。
可能吗?
最佳答案
是的,有可能。
假设您的date1大于date2。
所以,
first_sunday = DATE_ADD(@date2, interval (8 - DAYOFWEEK(@date2)) mod 7 DAY)
是@ date2旁边的星期日,如果@ date2是星期日,则first_sunday是@ date2
last_sunday = DATE_ADD(@date1, interval 8 - DAYOFWEEK(@date1) DAY)
是@ date1旁边的星期日,即使@ date1是否是星期日,我们也不会计算last_sunday
sunday_count = FLOOR(DATEDIFF(last_sunday, first_sunday)/7)
将从date2到date1返回您的星期天金额。
如果只需要一个查询,就是这样:
SELECT FLOOR(DATEDIFF(DATE_ADD(@date1, interval 8 - DAYOFWEEK(@date1) DAY), DATE_ADD(@date2, interval (8 - DAYOFWEEK(@date2)) mod 7 DAY))/7)
关于mysql - 计算给定日期范围内星期日的发生而无需查询表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16955078/