数据库管理系统中的日期和时间函数


数据库管理系统中的日期和时间函数对于操作和存储与日期和时间相关的数值非常有用。

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

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)

此函数将 31 天添加到给定的日期,即 '2018-08-01',并返回结果日期,即 '2018-09-01'。

ADDTIME(exp1,exp2)

此函数将两个表达式 exp1 和 exp2 相加并显示结果。在这种情况下,exp1 可以是 datetime 或 time 表达式,而 exp2 是 time 表达式。例如:

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)

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

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' 的 time 部分。


更新于:2020年6月19日

浏览量:5K+

启动你的职业生涯

完成课程获得认证

开始学习
广告