MySQL 如何在 MySQL 中转换日期格式?
在 MySQL 数据库中,日期是一种十分常见的数据类型。有时候,我们需要将日期按照一定的格式进行转换,例如将“2022-02-22”转换为“2022年02月22日”。本文介绍如何在 MySQL 中对日期进行格式转换。
阅读更多:MySQL 教程
DATE_FORMAT 函数
MySQL 提供了 DATE_FORMAT 函数来实现日期格式转换。其语法如下:
DATE_FORMAT(date, format)
其中,date 表示待转换的日期,可以是日期型字段,或者是日期型常量;format 表示转换后的格式,其取值可以为如下格式符号:
格式符号 | 含义 |
---|---|
%Y | 四位年份(例如:2022) |
%y | 两位年份(例如:22) |
%m | 月份(01~12) |
%c | 月份(1~12) |
%b/%h | 缩写月份(例如:Feb) |
%M | 月份的完整名字(例如:February) |
%d | 日期(01~31) |
%e | 日期(1~31) |
%j | 年内天数(001~366) |
%a | 缩写星期名字(例如:Fri) |
%W | 星期的完整名字(例如:Friday) |
%w | 星期(0~6,其中0表示星期天) |
%U | 一年中的第几周(00~53,其中星期天作为周的第一天) |
%u | 一年中的第几周(00~53,其中星期一作为周的第一天) |
%H | 小时(00~23) |
%h/%I | 小时(01~12) |
%i | 分钟(00~59) |
%s | 秒(00~59) |
例如,我们可以使用如下的语句将日期字段“create_time”转换为“2022年02月22日”格式:
SELECT DATE_FORMAT(create_time, '%Y年%m月%d日') FROM my_table;
STR_TO_DATE 函数
除了 DATE_FORMAT 函数,MySQL 还提供了 STR_TO_DATE 函数,可以将字符串转换为日期型数据。其语法如下:
STR_TO_DATE(str, format)
其中,str 表示待转换的字符串;format 表示字符串中日期格式的格式符号。
例如,我们可以使用如下的语句将字符串“2022年02月22日”转换为日期型数据:
SELECT STR_TO_DATE('2022年02月22日', '%Y年%m月%d日');
日期运算
除了日期格式的调整,我们还可以在 MySQL 中进行日期的加减运算,例如:
-- 增加 1 天
SELECT create_time + INTERVAL 1 DAY FROM my_table;
-- 减少 3 天
SELECT create_time - INTERVAL 3 DAY FROM my_table;
MySQL 还支持对日期进行加减小时、分钟、秒等运算,具体语法为:
interval <value> <unit>
其中,value 表示待加减的值,可以是整数或者小数;unit 表示单位,可以为 HOUR、MINUTE、SECOND 等常见的时间单位。
示例代码
下面是一些具体的示例代码。
准备数据:
CREATE TABLE my_table (
id int(11) NOT NULL AUTO_INCREMENT,
create_time datetime NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO my_table (create_time) VALUES ('2022-02-22 00:00:00');
将日期转换为“2022年02月22日”格式:
SELECT DATE_FORMAT(create_time, '%Y年%m月%d日') FROM my_table;
输出结果:
“| DATE_FORMAT(create_time, ‘%Y年%m月%d日’) |
| ——————————— |
| 2022年02月22日 |
将字符串“2022年02月22日”转换为日期型数据:
SELECT STR_TO_DATE('2022年02月22日', '%Y年%m月%d日');
输出结果:
STR_TO_DATE(‘2022年02月22日’, ‘%Y年%m月%d日’) |
---|
2022-02-22 00:00:00 |
进行日期加减运算:
-- 增加 1 天
SELECT create_time + INTERVAL 1 DAY FROM my_table;
-- 减少 3 天
SELECT create_time - INTERVAL 3 DAY FROM my_table;
输出结果:
create_time + INTERVAL 1 DAY |
---|
2022-02-23 00:00:00 |
create_time – INTERVAL 3 DAY |
---|
2022-02-19 00:00:00 |
结论
使用 MySQL 提供的 DATE_FORMAT 函数和 STR_TO_DATE 函数,可以方便地对日期进行格式转换。在需要进行日期加减运算的情况下,可以使用 INTERVAL 关键字来实现。熟练掌握这些函数和关键字,可以使得数据处理更加高效、便捷。