W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
日期時(shí)間函數(shù)主要用來(lái)顯示有關(guān)日期和時(shí)間的信息。
聲明
CURDATE()
說(shuō)明
返回當(dāng)前日期,不含時(shí)間部分。
例子
obclient> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2018-05-05 |
+------------+
1 row in set (0.00 sec)
聲明
CURRENT_DATE()
CURRENT_DATE
說(shuō)明
同 CURDATE()
。
聲明
CURRENT_TIME([scale])
說(shuō)明
返回當(dāng)前時(shí)間,不含日期部分。
scale
有效值為 0 到 6,表示微秒部分精度,默認(rèn)值為 0。
例子
obclient> SELECT CURRENT_TIME(6);
+-----------------+
| CURRENT_TIME(6) |
+-----------------+
| 11:11:45.215311 |
+-----------------+
1 row in set (0.01 sec)
聲明
CURRENT_TIMESTAMP([scale])
說(shuō)明
返回當(dāng)前日期時(shí)間,考慮時(shí)區(qū)設(shè)置。
scale
有效值為 0 到 6,表示微秒部分精度,默認(rèn)值為 0。
例子
obclient> SELECT CURRENT_TIMESTAMP(6);
+----------------------------+
| CURRENT_TIMESTAMP(6) |
+----------------------------+
| 2018-05-05 11:35:39.177764 |
+----------------------------+
1 row in set (0.01 sec)
聲明
CURTIME()
說(shuō)明
同 CURRENT_TIME()
。
聲明
DATE_ADD(date, INTERVAL expr unit)
說(shuō)明
日期時(shí)間的算術(shù)計(jì)算。
date
表示日期時(shí)間基準(zhǔn),日期部分必選,時(shí)間部分可選。
expr
表示時(shí)間間隔,可以為負(fù)值。
unit
表示時(shí)間間隔單位。
以下為所有時(shí)間間隔單位列表:
單位 |
類型 |
含義 |
格式 |
---|---|---|---|
|
獨(dú)立 |
微秒 |
|
|
獨(dú)立 |
秒 |
|
|
獨(dú)立 |
分鐘 |
|
|
獨(dú)立 |
小時(shí) |
|
|
獨(dú)立 |
天 |
|
|
獨(dú)立 |
周 |
|
|
獨(dú)立 |
月 |
|
|
獨(dú)立 |
季度 |
|
|
獨(dú)立 |
年 |
|
|
組合 |
秒到微秒 |
|
|
組合 |
分鐘到微秒 |
|
|
組合 |
分鐘到秒 |
|
|
組合 |
小時(shí)到微秒 |
|
|
組合 |
小時(shí)到秒 |
|
|
組合 |
小時(shí)到分鐘 |
|
|
組合 |
天到秒 |
|
|
組合 |
天到分鐘 |
|
|
組合 |
天到小時(shí) |
|
|
組合 |
年到月 |
|
例子
obclient> SELECT
DATE_ADD(NOW(), INTERVAL 5 DAY),
DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND),
DATE_ADD('2014-01-10', INTERVAL 5 SECOND),
DATE_ADD('2014-01-10', INTERVAL 5 MINUTE),
DATE_ADD('2014-01-10', INTERVAL 5 HOUR),
DATE_ADD('2014-01-10', INTERVAL 5 DAY),
DATE_ADD('2014-01-10', INTERVAL 5 WEEK),
DATE_ADD('2014-01-10', INTERVAL 5 MONTH),
DATE_ADD('2014-01-10', INTERVAL 5 QUARTER),
DATE_ADD('2014-01-10', INTERVAL 5 YEAR),
DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND),
DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND),
DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND),
DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND),
DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND),
DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE),
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND),
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND),
DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE),
DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR),
DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH)
\G
*************************** 1. row ***************************
DATE_ADD(NOW(), INTERVAL 5 DAY): 2021-04-21 16:04:53
DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND): 2014-01-10 00:00:00.000005
DATE_ADD('2014-01-10', INTERVAL 5 SECOND): 2014-01-10 00:00:05
DATE_ADD('2014-01-10', INTERVAL 5 MINUTE): 2014-01-10 00:05:00
DATE_ADD('2014-01-10', INTERVAL 5 HOUR): 2014-01-10 05:00:00
DATE_ADD('2014-01-10', INTERVAL 5 DAY): 2014-01-15
DATE_ADD('2014-01-10', INTERVAL 5 WEEK): 2014-02-14
DATE_ADD('2014-01-10', INTERVAL 5 MONTH): 2014-06-10
DATE_ADD('2014-01-10', INTERVAL 5 QUARTER): 2015-04-10
DATE_ADD('2014-01-10', INTERVAL 5 YEAR): 2019-01-10
DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND): 2014-01-10 00:00:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND): 2014-01-10 00:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND): 2014-01-10 00:05:05
DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND): 2014-01-10 05:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND): 2014-01-10 05:05:05
DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE): 2014-01-10 05:05:00
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND): 2014-01-11 05:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND): 2014-01-11 05:05:05
DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE): 2014-01-11 05:05:00
DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR): 2014-01-11 05:00:00
DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH): 2015-02-10
1 row in set (0.01 sec)
聲明
DATE_FORMAT(date, format)
說(shuō)明
將日期時(shí)間以指定格式輸出。
date
表示日期時(shí)間。
format
表示輸出格式。
以下為所有輸出格式列表:
格式符 |
含義 |
格式 |
---|---|---|
|
星期的英文縮寫。 |
|
|
月份的英文縮寫。 |
|
|
月份的數(shù)字形式。 |
|
|
日的英文縮寫。 |
|
|
日的數(shù)字形式。 |
|
|
日的數(shù)字形式。 |
|
|
微秒。 |
|
|
小時(shí)。 |
|
|
小時(shí)。 |
|
|
小時(shí)。 |
|
|
分鐘。 |
|
|
一年中的第幾天。 |
|
|
小時(shí)。 |
|
|
小時(shí)。 |
|
|
月份的英文名稱。 |
|
|
月份的數(shù)字形式。 |
|
|
上午或下午。 |
|
|
12小時(shí)制時(shí)間。 |
|
|
秒。 |
|
|
秒。 |
|
|
24小時(shí)制時(shí)間。 |
|
|
一年中的第幾周,周日為每周第一天。 |
|
|
一年中的第幾周,周一為每周第一天。 |
|
|
一年中的第幾周,周日為每周第一天(和 |
|
|
一年中的第幾周,周一為每周第一天(和 |
|
|
星期的英文名稱。 |
|
|
一周中的第幾天。 |
|
|
一周所屬的年份,周日為每周第一天(和 |
|
|
一周所屬的年份,周一為每周第一天(和 |
|
|
四位年份。 |
|
|
兩位年份。 |
|
|
文字字符,輸出一個(gè) |
例子
obclient> SELECT
DATE_FORMAT('2014-01-01', '%Y-%M-%d'),
DATE_FORMAT('2014-01-01', '%X-%V'),
DATE_FORMAT('2014-01-01', '%U')
\G
*************************** 1. row ***************************
DATE_FORMAT('2014-01-01', '%Y-%M-%d'): 2014-January-01
DATE_FORMAT('2014-01-01', '%X-%V'): 2013-52
DATE_FORMAT('2014-01-01', '%U'): 00
1 row in set (0.01 sec)
聲明
DATE_SUB(date, INTERVAL expr unit)
說(shuō)明
日期時(shí)間的算術(shù)計(jì)算。
請(qǐng)參考 DATE_ADD()
。
聲明
DATEDIFF(date1, date2)
說(shuō)明
返回 date1
和 date2
之間的天數(shù)。
計(jì)算中只用到參數(shù)的日期部分,忽略時(shí)間部分。
例子
obclient> SELECT DATEDIFF('2015-06-19','1994-12-17');
+-------------------------------------+
| DATEDIFF('2015-06-19','1994-12-17') |
+-------------------------------------+
| 7489 |
+-------------------------------------+
1 row in set (0.01 sec)
聲明
EXTRACT(unit FROM date)
說(shuō)明
以整數(shù)類型返回 date
的指定部分值。如果指定多個(gè)部分,則將所有值按順序拼接。
unit
請(qǐng)參考 DATE_ADD()
。當(dāng) unit
為 WEEK
時(shí),請(qǐng)參考 DATE_FORMAT()
的 %U
說(shuō)明。
例子
obclient> SELECT EXTRACT(WEEK FROM '2013-01-01'),
EXTRACT(WEEK FROM '2013-01-06'),
EXTRACT(YEAR_MONTH FROM '2012-03-09'),
EXTRACT(DAY FROM NOW())\G;
*************************** 1. row ***************************
EXTRACT(WEEK FROM '2013-01-01'): 0
EXTRACT(WEEK FROM '2013-01-06'): 1
EXTRACT(YEAR_MONTH FROM '2012-03-09'): 201203
EXTRACT(DAY FROM NOW()): 16
1 row in set (0.00 sec)
聲明
FROM_DAYS(N)
說(shuō)明
返回指定天數(shù) N
對(duì)應(yīng)的 DATE
值。天數(shù)指距離 0000-01-01
的天數(shù)。
例子
obclient> SELECT FROM_DAYS(736271), FROM_DAYS(700000);
+-------------------+-------------------+
| FROM_DAYS(736271) | FROM_DAYS(700000) |
+-------------------+-------------------+
| 2015-11-04 | 1916-07-15 |
+-------------------+-------------------+
1 row in set (0.00 sec)
聲明
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp, format)
說(shuō)明
不指定 format
參數(shù)時(shí),返回 DATETIME
類型值,不考慮時(shí)區(qū)。
指定 format
參數(shù)時(shí),返回指定格式的日期時(shí)間字符串。
unix_timestamp
指 UNIX 時(shí)間戳,即距離 1970-01-01 00:00:00.000000
的微秒數(shù)。
format
支持的格式已在 DATE_FORMAT()
說(shuō)明 中列出。
例子
obclient> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
+---------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x') |
+---------------------------------------------------------+
| 2018 5th May 08:41:26 2018 |
+---------------------------------------------------------+
1 row in set (0.01 sec)
聲明
MONTH(date)
說(shuō)明
返回 date
的月份信息。
例子
obclient> SELECT MONTH('2008-02-03');
+---------------------+
| MONTH('2008-02-03') |
+---------------------+
| 2 |
+---------------------+
1 row in set (0.01 sec)
聲明
NOW([scale])
說(shuō)明
同 CURRENT_TIMESTAMP()
。
聲明
PERIOD_DIFF(p1, p2)
說(shuō)明
以月份位單位返回兩個(gè)日期之間的間隔。日期只能包含年月信息,格式只能為 YYYYMM
或 YYMM
。
例子
obclient> SELECT PERIOD_DIFF(200802, 200703);
+----------------------------+
| PERIOD_DIFF(200802,200703) |
+----------------------------+
| 11 |
+----------------------------+
1 row in set (0.01 sec)
聲明
STR_TO_DATE(str, format)
說(shuō)明
使用 format
將 str
轉(zhuǎn)換為 DATETIME
值、DATE
值、或 TIME
值。返回值類型取決于 format
包含日期時(shí)間的哪些部分。
format
支持的格式已在 DATE_FORMAT()
說(shuō)明 中列出。
例子
obclient> SELECT STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r');
+-----------------------------------------------------+
| STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r') |
+-----------------------------------------------------+
| 2014-01-01 05:05:05 |
+-----------------------------------------------------+
1 row in set (0.01 sec)
聲明
TIME(datetime)
說(shuō)明
以 TIME
類型返回 datetime
的時(shí)間信息。
例子
obclient> SELECT TIME('2003-12-31 01:02:03');
+-----------------------------+
| TIME('2003-12-31 01:02:03') |
+-----------------------------+
| 01:02:03.000000 |
+-----------------------------+
1 row in set (0.01 sec)
聲明
TIME_TO_USEC(date)
說(shuō)明
將 date
值轉(zhuǎn)換為距離 1970-01-01 00:00:00.000000
的微秒數(shù),考慮時(shí)區(qū)信息。
date
可以表示日期,也可以表示日期時(shí)間。
例子
obclient> SELECT TIME_TO_USEC('2014-03-25'), TIME_TO_USEC(NOW());
+----------------------------+---------------------+
| TIME_TO_USEC('2014-03-25') | TIME_TO_USEC(NOW()) |
+----------------------------+---------------------+
| 1395676800000000 | 1525528100000000 |
+----------------------------+---------------------+
1 row in set (0.01 sec)
聲明
TIMEDIFF(date1, date2)
說(shuō)明
以 TIME
類型返回兩個(gè)日期時(shí)間的時(shí)間間隔。
例子
obclient> SELECT
TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'),
TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11')
\G
*************************** 1. row ***************************
TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'): 838:59:59
TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11'): 25:01:01
1 row in set (0.00 sec)
聲明
TIMESTAMPDIFF(unit, date1, date2)
說(shuō)明
以 unit
為單位返回兩個(gè)日期時(shí)間的間隔。unit
只能為 DATE_ADD()
中的獨(dú)立單位。
例子
obclient> SELECT
TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'),
TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW())
\G
*************************** 1. row ***************************
TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'): -231677498
TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW()): 2681
1 row in set (0.00 sec)
聲明
TIMESTAMPADD(unit, interval_expr, date)
說(shuō)明
日期時(shí)間的算術(shù)計(jì)算。
同 DATE_ADD()
,但 unit
只能為獨(dú)立單位。
例子
obclient> SELECT
TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'),
DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY)
\G
*************************** 1. row ***************************
TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'): 2009-12-27 00:00:00
DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY): 2009-12-27 00:00:00
1 row in set (0.01 sec)
聲明
TO_DAYS(date)
說(shuō)明
返回指定 date
值對(duì)應(yīng)的天數(shù)。天數(shù)指距離 0000-01-01
的天數(shù)。
例子
obclient> SELECT TO_DAYS('2015-11-04'), TO_DAYS('20151104');
+-----------------------+---------------------+
| TO_DAYS('2015-11-04') | TO_DAYS('20151104') |
+-----------------------+---------------------+
| 736271 | 736271 |
+-----------------------+---------------------+
1 row in set (0.01 sec)
聲明
USEC_TO_TIME(usec)
說(shuō)明
將 usec
值轉(zhuǎn)換為 TIMESTAMP
類型值。
usec
表示距離 1970-01-01 00:00:00.000000
的微秒數(shù),考慮時(shí)區(qū)信息。
例子
obclient> SELECT USEC_TO_TIME(1);
+----------------------------+
| USEC_TO_TIME(1) |
+----------------------------+
| 1970-01-01 08:00:00.000001 |
+----------------------------+
1 row in set (0.00 sec)
聲明
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
說(shuō)明
不指定 date
參數(shù)時(shí),返回當(dāng)前時(shí)間距離 '1970-01-01 00:00:00' 的秒數(shù),考慮時(shí)區(qū)。
指定 date
參數(shù)時(shí),返回指定時(shí)間距離 '1970-01-01 00:00:00' 的秒數(shù),考慮時(shí)區(qū)。
例子
obclient> SELECT UNIX_TIMESTAMP(), TIME_TO_USEC(NOW());
+------------------+---------------------+
| UNIX_TIMESTAMP() | TIME_TO_USEC(NOW()) |
+------------------+---------------------+
| 1525570561 | 1525570561000000 |
+------------------+---------------------+
1 row in set (0.01 sec)
obclient> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------+
| 875974980 |
+---------------------------------------+
1 row in set (0.01 sec)
聲明
UTC_TIMESTAMP()
說(shuō)明
返回當(dāng)前 UTC 時(shí)間。
例子
obclient> SELECT UTC_TIMESTAMP();
+---------------------+
| UTC_TIMESTAMP() |
+---------------------+
| 2018-05-06 01:38:32 |
+---------------------+
1 row in set (0.01 sec)
聲明
YEAR(date)
說(shuō)明
返回 date
值的年份信息。
例子
obclient> SELECT YEAR('1987-01-01');
+--------------------+
| YEAR('1987-01-01') |
+--------------------+
| 1987 |
+--------------------+
1 row in set (0.00 sec)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: