資料庫管理系統中的日期和時間函式
資料庫管理系統中的日期和時間函式對於操作和儲存與日期和時間相關的數值非常有用。
不同的日期和時間函式如下:
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 部分。