DBMS中的日期和时间函数

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'被添加到日期时间函数'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(日期)

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

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

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

DAYOFMONTH(日期)

对于给定的日期,它将返回该日期所在的日期。每月的日期范围为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(日期)

对于给定的日期,它将返回该日期所在的星期几。星期几的值的范围是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(日期)

对于给定的日期,它将返回该日期所在的日期。一年中某天的值范围为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(日期)

它返回相应日期的月份值。该月的范围是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'的时间部分。