DBMS 中的日期和时间函数

databasemca更新于 2026/2/6 3:37:17

DBMS 中的日期和时间函数对于操作和存储与日期和时间相关的值非常有用。

不同的日期和时间函数如下 −

ADDDATE(DATE,DAYS)

将整数形式的天数 (DAYS) 添加到指定日期。这是函数返回的值。例如 −

sql> SELECT ADDDATE('2018-08-01', 31);
+---------------------------------------------------------+
| DATE_ADD('2018-08-01', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 2018-09-01                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

此函数将给定日期(例如"2018-08-01")加上 31 天,并返回结果日期(例如"2018-09-01")。

ADDTIME(exp1,exp2)

此函数将两个表达式 exp1 和 exp2 相加并显示结果。其中,exp1 可以是日期时间或时间表达式,exp2 可以是时间表达式。例如:

sql> SELECT ADDTIME('2018-08-01 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
|ADDTIME('2018-08-01 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 2018-08-02 01:01:01.000001 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

将时间"1 1:1:1.000002"添加到 datetime 函数"2018-08-01 23:59:59.999999"中,得到结果值"2018-08-02 01:01:01.000001"

CURDATE()

这将以 YYYY-MM-DD 格式返回系统当前日期。例如 −

sql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE()                                               |
+---------------------------------------------------------+
| 2018-08-01                                            |
+---------------------------------------------------------+
1 row in set (0.00 sec)

此函数返回当前日期,例如"2018-08-01"

CURTIME()

此函数返回当前时区的系统当前时间,格式为 HH:MM:SS。例如−

sql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME()                                               |
+---------------------------------------------------------+
| 10:56:35                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

此函数返回当前时间,例如"10:56:35"

DAYNAME(date)

对于给定的日期,此函数返回相应的星期几。例如 −

sql> SELECT DAYNAME('2018-08-01');
+---------------------------------------------------------+
| DAYNAME('2018-08-01')                                   |
+---------------------------------------------------------+
| Wednesday                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

对于日期"2018-08-01",此函数返回星期几,即星期三。

DAYOFMONTH(date)

对于给定的日期,此函数返回该日期所在月份的星期几。月份的星期几值范围为 1 到 31。例如 −

sql> SELECT DAYOFMONTH('2018-02-15');
+---------------------------------------------------------+
| DAYOFMONTH('2018-02-15')                                |
+---------------------------------------------------------+
| 15                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

返回"2018-02-15"所在月份的日期,即15号。

DAYOFWEEK(date)

对于给定的日期,返回该日期所在的星期几。星期几的值范围为1到7(星期日为1,星期六为7)。例如 −

sql> SELECT DAYOFWEEK('2018-02-15');
+---------------------------------------------------------+
|DAYOFWEEK('2018-02-15') |
+---------------------------------------------------------+
| 5 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

返回"2018-02-15"是星期几,即5。

DAYOFYEAR(date)

对于给定的日期,返回该日期所在的年份。年份的天数范围为1到366。例如 −

sql> SELECT DAYOFYEAR('2018-02-15');
+---------------------------------------------------------+
| DAYOFYEAR('2018-02-15')                                 |
+---------------------------------------------------------+
| 46                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

这将返回"2018-02-15"所在的年份,即第 46 天。

MONTH(date)

它返回相应日期的月份值。月份范围为 1 到 12。例如 −

sql> SELECT MONTH('2018-08-01');
+---------------------------------------------------------+
| MONTH('2018-08-01') |
+---------------------------------------------------------+
| 8 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

这将返回"2018-08-01"的月份数,即 8。

TIME(expr)

此函数以字符串形式显示时间或日期时间表达式的时间部分。例如 −

sql> SELECT TIME('2018-08-01 11:33:25');
+---------------------------------------------------------+
| TIME('2018-08-01 11:33:25')                             |
+---------------------------------------------------------+
| 11:33:25                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

这将以字符串形式显示"2018-08-01 11:33:25"的时间部分。



相关文章