什么是DATE_FORMAT函数
在MySQL中,DATE_FORMAT函数是用来格式化日期的函数。通过DATE_FORMAT函数,你可以将日期格式化成特定的字符串,以便进行排序、过滤和其他操作。
DATE_FORMAT函数通常接受两个参数:需要被格式化的日期,以及格式字符串。格式字符串规定了将日期格式化为何种格式。
如何使用DATE_FORMAT函数
下面是一个基本的DATE_FORMAT函数的语法:
SELECT DATE_FORMAT(date, format) FROM table_name;
其中:
date:被格式化的日期,可以是一个日期值或者是一个含有日期的列名(如 ORDER_DATE)。
format:规定了将日期格式化为何种格式(例如:%Y-%m-%d),具体的格式化方式将在后面介绍。
table_name:包含日期列的表格名称。
下面我们以一个简单的例子来说明:
SELECT DATE_FORMAT("2022-01-01", "%Y-%m-%d") AS DATE;
执行结果会返回:
+------------+
| DATE |
+------------+
| 2022-01-01 |
+------------+
我们可以使用AS关键字为返回结果的列起一个别名,以便更容易地理解结果。
日期格式字符串的基本用法
DATE_FORMAT函数可以接受多种格式字符串,下面是一些基本的用法。
格式化年份
要格式化年份,可以使用 %Y 标志。例如,要将日期 2022-01-01 格式化为 "22":
SELECT DATE_FORMAT("2022-01-01", "%Y");
执行结果:
+--------+
| %Y |
+--------+
| 2022 |
+--------+
这里我们需要注意的是,%Y 用于输出完整的四位数年份。如果想只输出两位数,应该使用 %y,下面是一个例子:
SELECT DATE_FORMAT("2022-01-01", "%y");
执行结果:
+--------+
| %y |
+--------+
| 22 |
+--------+
格式化月份
要格式化月份,可以使用 %m 标志。例如,要将日期 2022-01-01 格式化为 "01":
SELECT DATE_FORMAT("2022-01-01", "%m");
执行结果:
+--------+
| %m |
+--------+
| 01 |
+--------+
这里需要注意的是,%m 输出的是两位数的月份,如果要输出数字,应该使用 %c,下面是一个例子:
SELECT DATE_FORMAT("2022-01-01", "%c");
执行结果:
+--------+
| %c |
+--------+
| 1 |
+--------+
格式化日期
要格式化日期,可以使用 %d 标志。例如,要将日期 2022-01-01 格式化为 "01":
SELECT DATE_FORMAT("2022-01-01", "%d");
执行结果:
+--------+
| %d |
+--------+
| 01 |
+--------+
需要注意的是,%d 输出的是两位数的日期,同样如果要输出数字,应该使用 %e,下面是一个例子:
SELECT DATE_FORMAT("2022-01-01", "%e");
执行结果:
+--------+
| %e |
+--------+
| 1 |
+--------+
日期格式字符串的高级用法
除了上述基本用法外,DATE_FORMAT函数还有一些高级的格式化字符串,下面是一些例子。
格式化星期
要格式化星期,可以使用 %W 标志。例如,要将日期 2022-01-01 格式化为 "Saturday":
SELECT DATE_FORMAT("2022-01-01", "%W");
执行结果:
+------------+
| %W |
+------------+
| Saturday |
+------------+
这里需要注意的是,%W 标志输出的是完整的星期名称,要输出简写的星期名称,可以使用 %a 标志,下面是一个例子:
SELECT DATE_FORMAT("2022-01-01", "%a");
执行结果:
+--------+
| %a |
+--------+
| Sat |
+--------+
格式化月份和日期
你可以使用 %b 和 %d 标志来同时格式化月份和日期,例如:
SELECT DATE_FORMAT("2022-01-01", "%b %d");
执行结果:
+----------+
| %b %d |
+----------+
| Jan 01 |
+----------+
格式化时间
要格式化时间,可以使用 %H 和 %i 标志,分别代表小时和分钟。例如,要将时间 "12:32:00" 格式化为 "12:32":
SELECT DATE_FORMAT("12:32:00", "%H:%i");
执行结果:
+---------+
| %H:%i |
+---------+
| 12:32 |
+---------+
总结
在本文中,我们介绍了MySQL中的DATE_FORMAT函数,它可以用来将日期格式化为特定的字符串。我们讨论了DATE_FORMAT函数的基本用法和一些高级用法,希望能帮助您更好地理解这个函数。