MySQL 获取特殊的日期(例如:上个月)

在使用MySQL进行数据查询和分析时,有时需要获取一些特殊的日期,比如上个月的起始日期和结束日期。本文将详细介绍如何在MySQL中使用不同的方法来获取这些特殊的日期。
1. 使用CURRENT_DATE函数获取当前日期
在MySQL中,可以使用CURRENT_DATE函数来获取当前的日期。
SELECT CURRENT_DATE();
运行以上代码,将会得到当前的日期,格式为’YYYY-MM-DD’。
2. 获取上个月的起始日期和结束日期
2.1 使用DATE_SUB函数和MONTH函数
可以使用DATE_SUB函数和MONTH函数来获取上个月的起始日期和结束日期。
SELECT
DATE_SUB(DATE_SUB(CURRENT_DATE(), INTERVAL MONTH(CURRENT_DATE())-1 MONTH), INTERVAL 1 MONTH) AS start_of_last_month,
DATE_SUB(CURRENT_DATE(), INTERVAL DAY(CURRENT_DATE()) DAY) AS end_of_last_month;
运行以上代码,将会得到上个月的起始日期和结束日期,格式均为’YYYY-MM-DD’。
2.2 使用DATE_FORMAT函数和DATE_SUB函数
也可以使用DATE_FORMAT函数和DATE_SUB函数来获取上个月的起始日期和结束日期。
SELECT
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH), '%Y-%m-01') AS start_of_last_month,
DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY), '%Y-%m-%d') AS end_of_last_month;
运行以上代码,将会得到上个月的起始日期和结束日期,格式均为’YYYY-MM-DD’。
3. 获取上个月的天数
有时候需要获取上个月的天数,可以使用DAY函数和DATE_SUB函数来实现。
SELECT DAY(DATE_SUB(CURRENT_DATE(), INTERVAL DAY(CURRENT_DATE()) DAY)) AS last_month_days;
运行以上代码,将会得到上个月的天数。
4. 获取上个月的年份和月份
有时候需要获取上个月的年份和月份,可以使用YEAR函数和MONTH函数来实现。
SELECT YEAR(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS last_month_year,
MONTH(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)) AS last_month_month;
运行以上代码,将会得到上个月的年份和月份。
5. 获取特定日期的上个月
如果要获取某个特定日期的上个月的起始日期和结束日期,可以使用DATE_SUB函数和MONTH函数来实现。
5.1 获取特定日期的上个月的起始日期
SELECT DATE_SUB(DATE_SUB('2022-01-15', INTERVAL MONTH('2022-01-15')-1 MONTH), INTERVAL 1 MONTH) AS start_of_last_month_specific_date;
运行以上代码,将会得到特定日期的上个月的起始日期。
5.2 获取特定日期的上个月的结束日期
SELECT DATE_SUB('2022-01-15', INTERVAL DAY('2022-01-15') DAY) AS end_of_last_month_specific_date;
运行以上代码,将会得到特定日期的上个月的结束日期。
总结
本文介绍了如何在MySQL中获取特殊的日期,包括上个月的起始日期和结束日期,上个月的天数,以及上个月的年份和月份。我们可以通过使用不同的函数和表达式来实现这些需求。在实际应用中,这些功能对于进行数据分析和报表生成非常有用。
极客笔记