MySQL 是一个关系型数据库管理系统,广泛用于数据存储和管理。查询上个月的日期涉及到日期函数和时间操作。
MySQL 中常用的日期函数包括:
NOW()
:返回当前日期和时间。DATE_FORMAT(date, format)
:将日期格式化为指定的字符串。DATE_SUB(date, INTERVAL expr unit)
:从日期中减去指定的时间间隔。LAST_DAY(date)
:返回给定月份的最后一天。在数据分析、报表生成、数据统计等场景中,经常需要查询特定时间段的日期数据。
假设我们要查询上个月的开始日期和结束日期,可以使用以下 SQL 语句:
SELECT
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01') AS start_date,
LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AS end_date;
CURDATE()
:获取当前日期。DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
:从当前日期减去一个月,得到上个月的同一天。DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01')
:将上个月的日期格式化为当月的第一天。LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
:获取上个月的最后一天。原因:
解决方法:
-- 设置时区为 UTC
SET time_zone = '+00:00';
-- 查询上个月的开始日期和结束日期
SELECT
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01') AS start_date,
LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AS end_date;
通过以上方法,你可以准确地查询到上个月的日期,并解决可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云