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)

此函式將 31 天新增到給定日期,即 '2018-08-01',並返回結果日期,即 '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(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' 的時段。


更新於:2020-06-19

5K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.