0

我想使用 MySQL 计算在给定日期范围内发生的星期天数...我的问题是给定的日期不在表中...我只想让 SQL 在没有任何查询的情况下计算它..例如:选择日期 (日期 1,日期 2);这当然不需要任何表来查询。可能吗?

4

1 回答 1

0

是的,这是可能的。

假设您的 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)
于 2013-06-06T07:49:28.390 回答