目录

MySQL 查询当前年、季、月、周的第一天和最后一天

MySQL 查询当前年份的第一天和最后一天、当前季度的第一天和最后一天、当前月份的第一天和最后一天、当前周的第一天和最后一天。

年份

当前年份第一天

1
SELECT DATE_SUB(CURDATE(), INTERVAL DAYOFYEAR(NOW()) - 1 DAY) AS '当前年份的第一天';

当前年份最后一天

1
SELECT CONCAT(YEAR(NOW()), '-12-31') AS '当前年份的最后一天';

季度

当前季度第一天

1
2
SELECT MAKEDATE(YEAR(CURDATE()), 1) + INTERVAL QUARTER(CURDATE()) QUARTER - INTERVAL 1 QUARTER -
       INTERVAL +1 MONTH AS '当前季度的第一天';

当前季度最后一天

1
SELECT LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()), 1) + INTERVAL QUARTER(CURDATE()) * 3 - 1 MONTH) AS '当前季度的最后一天';

当前月份

当前月份的第一天

1
SELECT DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(NOW()) - 1 DAY) AS '当前月份的第一天';

当前月份的最后一天

1
SELECT LAST_DAY(NOW()) AS '当前月份的最后一天';

当前周

当前周的第一天

1
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) + 0 DAY) AS '当前周的第一天';

当前周的最后一天

1
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) - 6 DAY) AS '当前周的最后一天';