介绍
在MySQL中,使用DATE_FORMAT函数可以将日期数据格式化成指定的字符串格式。DATE_FORMAT函数的使用格式是:DATE_FORMAT(date,format),其中date代表日期数据的列名或者值,format代表需要将日期数据格式化成的字符串格式。DATE_FORMAT函数返回一个字符串类型的值。
快速使用
下面使用一个例子来快速演示DATE_FORMAT函数的使用方法。
创建表格
首先,我们创建一个名为mytable的表,表中包含两个列,一个是日期数据类型的date,一个是整数数据类型的value。代码如下所示:
CREATE TABLE mytable (
date date,
value int
);
插入数据
然后插入一些数据,代码如下:
INSERT INTO mytable (date, value) VALUES
('2022-01-01', 10),
('2022-01-02', 20),
('2022-01-03', 30),
('2022-01-04', 40),
('2022-01-05', 50);
使用DATE_FORMAT函数
现在我们可以使用DATE_FORMAT函数将日期数据格式化成我们需要的字符串格式了。例如,我们需要将日期格式化成'年-月-日'的形式,可以使用以下代码:
SELECT DATE_FORMAT(date, '%Y-%m-%d') AS date_str, value FROM mytable;
代码中的'%Y-%m-%d'就代表将日期格式化成'年-月-日'的形式。输出结果如下:
+------------+-------+
| date_str | value |
+------------+-------+
| 2022-01-01 | 10 |
| 2022-01-02 | 20 |
| 2022-01-03 | 30 |
| 2022-01-04 | 40 |
| 2022-01-05 | 50 |
+------------+-------+
DATE_FORMAT函数常用格式符介绍
下面是DATE_FORMAT函数中常用的格式符介绍:
格式符 | 描述
---|---
%Y | 年,四位数字
%m | 月,数字(01-12)
%d | 日,数字(01-31)
%H | 小时,数字(00-23)
%i | 分钟,数字(00-59)
%s | 秒,数字(00-59)
%W | 星期,完整的英文例如Monday
%w | 星期,数字(0-6,0代表星期日)
%a | 缩写的星期名称,例如Mon
%b | 缩写的月份名称,例如Jan
%c | 月份,数字(1-12)
%e | 日份,数字(1-31)
示例
日期格式化成'年-月-日 时:分:秒'
SELECT DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s') AS date_str, value FROM mytable;
输出结果如下:
+---------------------+-------+
| date_str | value |
+---------------------+-------+
| 2022-01-01 00:00:00 | 10 |
| 2022-01-02 00:00:00 | 20 |
| 2022-01-03 00:00:00 | 30 |
| 2022-01-04 00:00:00 | 40 |
| 2022-01-05 00:00:00 | 50 |
+---------------------+-------+
日期格式化成'月/日/年'
SELECT DATE_FORMAT(date, '%m/%d/%Y') AS date_str, value FROM mytable;
输出结果如下:
+------------+-------+
| date_str | value |
+------------+-------+
| 01/01/2022 | 10 |
| 01/02/2022 | 20 |
| 01/03/2022 | 30 |
| 01/04/2022 | 40 |
| 01/05/2022 | 50 |
+------------+-------+
日期格式化成'年.月.日 星期'
SELECT DATE_FORMAT(date, '%Y.%m.%d %W') AS date_str, value FROM mytable;
输出结果如下:
+-----------------+-------+
| date_str | value |
+-----------------+-------+
| 2022.01.01 Saturday | 10 |
| 2022.01.02 Sunday | 20 |
| 2022.01.03 Monday | 30 |
| 2022.01.04 Tuesday | 40 |
| 2022.01.05 Wednesday| 50 |
+-----------------+-------+
日期格式化成'月份名称 日, 年'
SELECT DATE_FORMAT(date, '%b %e, %Y') AS date_str, value FROM mytable;
输出结果如下:
+---------------+-------+
| date_str | value |
+---------------+-------+
| Jan 1, 2022 | 10 |
| Jan 2, 2022 | 20 |
| Jan 3, 2022 | 30 |
| Jan 4, 2022 | 40 |
| Jan 5, 2022 | 50 |
+---------------+-------+
总结
在MySQL中,使用DATE_FORMAT函数可以将日期数据格式化成指定的字符串格式。DATE_FORMAT函数的使用格式是:DATE_FORMAT(date,format),其中date代表日期数据的列名或者值,format代表需要将日期数据格式化成的字符串格式。DATE_FORMAT函数返回一个字符串类型的值。常用的日期格式符有%Y,%m,%d,%H,%i,%s,%W,%w,%a,%b,%c和%e。