MySQL Datetime 默认函数

MySQL是一种广泛使用的关系型数据库管理系统。它支持多种数据类型和函数,其中datetime是一种用于存储日期和时间值的数据类型。MySQL提供了一些默认函数,用于操作和处理datetime类型的数据。本文将介绍一些常用的MySQL datetime默认函数,并提供代码示例来演示它们的用法。

1. NOW()

NOW()函数返回当前日期和时间的值。它不需要任何参数,可以在任何需要日期和时间值的地方使用。

SELECT NOW();

这将返回一个类似于2022-01-01 12:34:56的结果,表示当前日期和时间。

2. CURDATE() 和 CURTIME()

CURDATE()函数返回当前日期的值,而CURTIME()函数返回当前时间的值。它们也不需要任何参数。

SELECT CURDATE();
SELECT CURTIME();

这些函数将分别返回当前日期和时间的值,例如2022-01-0112:34:56

3. DATE()

DATE()函数从datetime值中提取日期部分,并返回一个日期值。

SELECT DATE('2022-01-01 12:34:56');

这将返回一个日期值2022-01-01

4. TIME()

TIME()函数从datetime值中提取时间部分,并返回一个时间值。

SELECT TIME('2022-01-01 12:34:56');

这将返回一个时间值12:34:56

5. YEAR() 和 MONTH() 和 DAY()

YEAR()函数返回一个datetime值的年份部分,MONTH()函数返回月份部分,DAY()函数返回日期部分。

SELECT YEAR('2022-01-01 12:34:56');
SELECT MONTH('2022-01-01 12:34:56');
SELECT DAY('2022-01-01 12:34:56');

这些函数将分别返回20220101

6. HOUR() 和 MINUTE() 和 SECOND()

HOUR()函数返回一个datetime值的小时部分,MINUTE()函数返回分钟部分,SECOND()函数返回秒部分。

SELECT HOUR('2022-01-01 12:34:56');
SELECT MINUTE('2022-01-01 12:34:56');
SELECT SECOND('2022-01-01 12:34:56');

这些函数将分别返回123456

7. DATE_FORMAT()

DATE_FORMAT()函数可以将datetime值转换为特定格式的字符串。

SELECT DATE_FORMAT('2022-01-01 12:34:56', '%Y-%m-%d');

这将返回一个格式化后的字符串2022-01-01

可以使用不同的格式代码来定义所需的格式,例如%Y表示年份,%m表示月份,%d表示日期,%H表示小时,%i表示分钟,%s表示秒等。

8. ADDDATE() 和 SUBDATE()

ADDDATE()函数用于将日期加上一个指定的时间间隔,而SUBDATE()函数用于从日期中减去一个指定的时间间隔。

SELECT ADDDATE('2022-01-01', INTERVAL 1 DAY);
SELECT SUBDATE('2022-01-01', INTERVAL 1 DAY);

第一个查询将返回2022-01-02,而第二个查询将返回2021-12-31

9. DATEDIFF()

DATEDIFF()函数可以计算两个日期之间的天数差。

SELECT DATEDIFF('2022-01-01', '2021-12-31');

这将返回一个差值为1的整数。

示例关系图:

erDiagram
    NOW() -- CURDATE(): returns current date
    NOW() -- CURTIME(): returns current time
    DATE() -- YEAR(): extracts year
    DATE() -- MONTH(): extracts month
    DATE() -- DAY(): extracts day
    TIME() -- HOUR(): extracts hour
    TIME() -- MINUTE(): extracts minute
    TIME() -- SECOND(): extracts second
    DATE_FORMAT() -- ADDDATE(): adds interval
    DATE_FORMAT() -- SUBDATE(): subtracts interval
    DATEDIFF() -- ADDDATE(): adds interval
    DATEDIFF() -- SUBDATE(): subtracts interval

示例旅行图:

jour