📜  SQL中的日期操作函数(1)

📅  最后修改于: 2023-12-03 15:05:20.692000             🧑  作者: Mango

SQL中的日期操作函数

在SQL中,处理日期和时间的函数是非常重要的。本文将介绍一些常用的日期操作函数,帮助您更好地操作日期数据。

1.日期格式化函数
1.1 DATE_FORMAT

DATE_FORMAT可以将日期格式化为字符串。例如:将'2022-04-01'转换为'2022年04月01日',可以用以下语句:

SELECT DATE_FORMAT('2022-04-01', '%Y年%m月%d日');

输出结果为:

+-------------------------+
| DATE_FORMAT('2022-04-01', '%Y年%m月%d日') |
+-------------------------+
| 2022年04月01日            |
+-------------------------+

%Y表示年份,%m表示月份,%d表示日份,详细使用格式可以参照MySQL官方文档。

1.2 CAST

在MySQL中,还可以使用CAST函数将日期转换为不同的格式(例如字符串或数字)。例如,将日期'2022-04-01'转换为整数(YYYYMMDD):

SELECT CAST('2022-04-01' AS UNSIGNED);

输出结果为:

+---------------------------+
| CAST('2022-04-01' AS UNSIGNED) |
+---------------------------+
|        20220401            |
+---------------------------+
2.日期计算函数
2.1 DATE_ADD

DATE_ADD函数可以对日期进行加法计算。例如,如果要将当前日期加1天,可以使用以下语句:

SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);

输出结果为:

+----------------------------+
| DATE_ADD(NOW(), INTERVAL 1 DAY) |
+----------------------------+
| 2022-04-04 11:56:08        |
+----------------------------+
2.2 DATE_SUB

DATE_SUB函数可以对日期进行减法计算。例如,如果要将当前日期减1天,可以使用以下语句:

SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);

输出结果为:

+----------------------------+
| DATE_SUB(NOW(), INTERVAL 1 DAY) |
+----------------------------+
| 2022-04-02 11:56:08        |
+----------------------------+
2.3 DATEDIFF

DATEDIFF函数可以计算两个日期之间的天数差。例如,如果要计算从今天开始,10天后的日期是哪一天,可以使用以下语句:

SELECT DATE_ADD(NOW(), INTERVAL 10 DAY);

输出结果为:

+------------------------------+
| DATE_ADD(NOW(), INTERVAL 10 DAY) |
+------------------------------+
| 2022-04-11 11:56:08          |
+------------------------------+
2.4 DATE_DIFF

另外,DATEDIFF函数计算出的是整数天数,如果需要计算到小时或分钟等级,可以使用TIMEDIFF函数。

SELECT TIMEDIFF('2022-04-01 09:00:00', '2022-04-02 08:00:00');

输出结果为:

+------------------------------------------------+
| TIMEDIFF('2022-04-01 09:00:00', '2022-04-02 08:00:00') |
+------------------------------------------------+
| -23:00:00                                      |
+------------------------------------------------+
3.其他常用函数
3.1 NOW

NOW函数返回当前日期和时间。

SELECT NOW();

输出结果为:

+---------------------+
| NOW()               |
+---------------------+
| 2022-04-03 11:56:08 |
+---------------------+
3.2 YEAR & MONTH

YEAR和MONTH函数分别返回日期的年份和月份。

SELECT YEAR('2022-04-01'), MONTH('2022-04-01');

输出结果为:

+--------------------+---------------------+
| YEAR('2022-04-01') | MONTH('2022-04-01') |
+--------------------+---------------------+
|                2022 |                   4 |
+--------------------+---------------------+
结论

本文介绍了一些在SQL中常用的日期操作函数,包括日期格式化函数、日期计算函数和其他常用函数。对于需要处理日期数据的SQL问题,熟练掌握这些函数是非常重要的。