MySQL 是一个关系型数据库管理系统,广泛用于数据存储和管理。在 MySQL 中,获取本月第一天的日期是一个常见的需求,通常用于数据统计、报表生成等场景。
获取本月第一天的日期可以通过多种方式实现,以下是几种常见的方法:
DATE_FORMAT
和 STR_TO_DATE
SELECT STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(CURDATE()), '-01'), '%Y-%m-%d') AS first_day_of_month;
DATE_ADD
SELECT DATE_ADD(CURDATE(), INTERVAL - DAY(CURDATE()) + 1 DAY) AS first_day_of_month;
LAST_DAY
和 DATE_ADD
SELECT DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY) AS first_day_of_month;
DATE_FORMAT
和 STR_TO_DATE
方法时,结果不正确?原因:可能是由于日期格式不匹配导致的。
解决方法:确保 CONCAT
函数生成的字符串格式与 STR_TO_DATE
函数的格式参数一致。
SELECT STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-', MONTH(CURDATE()), '-01'), '%Y-%m-%d') AS first_day_of_month;
DATE_ADD
方法时,结果不正确?原因:可能是由于 DAY(CURDATE())
返回的值不正确。
解决方法:确保 DAY(CURDATE())
返回的是当前日期的天数,然后通过 DATE_ADD
函数进行调整。
SELECT DATE_ADD(CURDATE(), INTERVAL - DAY(CURDATE()) + 1 DAY) AS first_day_of_month;
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云