MySQL 输入 ‘2024-07’ 获取‘2023-12’
时间: 2024-09-10 15:10:36 浏览: 39
mysql-shell-8.0.30-linux-glibc2.12-x86-64bit.tar.gz
在MySQL中,如果你想从一个给定的年月字符串 `'2024-07'` 转换为上一自然年度的对应月份 `'2023-12'`,你需要先将输入的年月字符串转换成日期时间对象,然后从中减去一年再获取十二月。这里是一个例子:
```sql
SET @input_str = '2024-07';
SET @start_date = DATE_FORMAT(CURDATE() - INTERVAL 1 YEAR, '%Y-%m') + '-01'; -- 上一年的第一天
SET @output_str = DATE_FORMAT(DATE_SUB(@start_date, INTERVAL DAYOFMONTH(@input_str) DAY, INTERVAL 1 MONTH), '%Y-%m');
SELECT @output_str; -- 输出结果应为 '2023-12'
```
这个查询首先通过`CURDATE() - INTERVAL 1 YEAR`获取上一年的开始日期,然后加上'-01'变成指定年份的1月1日。接着使用`DATE_SUB`函数,减去输入日期的月份天数,并向前回退一个月,最后格式化为所需的字符串格式。
阅读全文