MySQL日期格式化

1. 引言
在数据库中,日期是一种常见的数据类型。MySQL提供了丰富的日期函数和格式化选项,方便我们对日期进行格式化和处理。本文将详细介绍MySQL中日期的格式化方法。
2. 日期函数
MySQL提供了许多用于处理日期的函数,这些函数可以用于提取、格式化和计算日期。下面是一些常用的日期函数:
2.1 NOW()
NOW()函数用于获取当前日期和时间。它返回一个表示当前日期和时间的日期时间值。
SELECT NOW();
输出:
2022-07-28 09:52:06
2.2 CURDATE()
CURDATE()函数用于获取当前日期。它返回一个表示当前日期的日期值。
SELECT CURDATE();
输出:
2022-07-28
2.3 CURTIME()
CURTIME()函数用于获取当前时间。它返回一个表示当前时间的时间值。
SELECT CURTIME();
输出:
09:52:06
2.4 DATE()
DATE()函数用于从一个日期时间值中提取日期部分。它返回一个表示日期的日期值。
SELECT DATE('2022-07-28 09:52:06');
输出:
2022-07-28
2.5 TIME()
TIME()函数用于从一个日期时间值中提取时间部分。它返回一个表示时间的时间值。
SELECT TIME('2022-07-28 09:52:06');
输出:
09:52:06
2.6 DAY()
DAY()函数用于从一个日期值中提取日份。它返回一个表示日份的整数值。
SELECT DAY('2022-07-28');
输出:
28
2.7 MONTH()
MONTH()函数用于从一个日期值中提取月份。它返回一个表示月份的整数值。
SELECT MONTH('2022-07-28');
输出:
7
2.8 YEAR()
YEAR()函数用于从一个日期值中提取年份。它返回一个表示年份的整数值。
SELECT YEAR('2022-07-28');
输出:
2022
3. 日期格式化
MySQL允许我们对日期进行格式化,可以将日期以我们期望的形式进行输出。下面是一些常用的日期格式化选项:
3.1 DATE_FORMAT()
DATE_FORMAT()函数用于将日期格式化为指定的字符串格式。它接受两个参数,第一个参数为日期值,第二个参数为目标字符串格式。
以下是一些常用的日期格式化符号:
%Y:4位年份%m:两位月份%d:两位日份%H:24小时制小时数%i:分钟数%s:秒数
SELECT DATE_FORMAT('2022-07-28', '%Y年%m月%d日');
输出:
2022年07月28日
SELECT DATE_FORMAT('2022-07-28 09:52:06', '%Y-%m-%d %H:%i:%s');
输出:
2022-07-28 09:52:06
3.2 DATE_ADD()
DATE_ADD()函数用于对日期进行加法运算。它接受三个参数,第一个参数为日期值,第二个参数为要添加的时间间隔,第三个参数为要添加的时间单位。
以下是一些常用的时间单位:
YEAR:年MONTH:月DAY:天HOUR:小时MINUTE:分钟SECOND:秒
SELECT DATE_ADD('2022-07-28', INTERVAL 1 DAY);
输出:
2022-07-29
SELECT DATE_ADD('2022-07-28', INTERVAL 1 MONTH);
输出:
2022-08-28
3.3 DATE_SUB()
DATE_SUB()函数用于对日期进行减法运算。它接受三个参数,第一个参数为日期值,第二个参数为要减去的时间间隔,第三个参数为要减去的时间单位。
SELECT DATE_SUB('2022-07-28', INTERVAL 1 DAY);
输出:
2022-07-27
SELECT DATE_SUB('2022-07-28', INTERVAL 1 MONTH);
输出:
2022-06-28
4. 示例代码
下面是一些示例代码,演示了如何在MySQL中进行日期格式化。
4.1 查询指定日期的月份和日份
SELECT DATE_FORMAT('2022-07-28', '%m月%d日');
输出:
07月28日
4.2 计算两个日期之间相差的天数
SELECT DATEDIFF('2022-07-28', '2022-07-25');
输出:
3
4.3 将日期按照指定格式进行排序
SELECT birthdate FROM students ORDER BY DATE_FORMAT(birthdate, '%Y-%m-%d') ASC;
4.4 计算某个日期加上30天之后的日期
SELECT DATE_ADD('2022-07-28', INTERVAL 30 DAY);
输出:
2022-08-27
4.5 查询某个月份的所有记录
SELECT * FROM orders WHERE MONTH(order_date) = 7;
4.6 查询某个年份的所有记录
SELECT * FROM orders WHERE YEAR(order_date) = 2022;
5. 结论
本文介绍了MySQL中日期的格式化方法,包括日期函数和日期格式化选项。通过使用这些函数和选项,我们可以方便地提取、格式化和计算日期。
极客笔记