Mysql中的日期時間函數(shù)小結(jié)
MySQL中內(nèi)置了大量的日期和時間函數(shù),能夠靈活、方便地處理日期和時間數(shù)據(jù),本節(jié)就簡單介紹一下MySQL中內(nèi)置的日期和時間函數(shù)。
1 CURDATE()函數(shù)
CURDATE()函數(shù)用于返回當前日期,只包含年、月、日部分,格式為YYYY-MM-DD。使用示例如下:
mysql> SELECT CURDATE(); +------------+ | CURDATE() | +------------+ | 2019-12-11 | +------------+ 1 row in set (0.00 sec)
CURRENT_DATE()函數(shù)的作用與CURDATE()函數(shù)相同,不再贅述。
2 CURTIME()函數(shù)
CURTIME()函數(shù)用于返回當前時間,只包含時、分、秒部分,格式為HH:MM:SS。使用示例如下:
mysql> SELECT CURTIME(); +-----------+ | CURTIME() | +-----------+ | 11:27:44 | +-----------+ 1 row in set (0.00 sec)
CURRENT_TIME()函數(shù)的作用與CURTIME函數(shù)相同,不再贅述。
3 NOW()函數(shù)
NOW()函數(shù)用于返回當前日期和時間,包含年、月、日、時、分、秒,格式為YYYY-MM-DD HH:MM:SS。使用示例如下:
mysql> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2019-12-15 11:29:22 | +---------------------+ 1 row in set (0.00 sec)
CURRENT_TIMESTAMP()函數(shù)、LOCALTIME()函數(shù)、LOCALTIMESTAMP()函數(shù)、SYSDATE()函數(shù)的作用與NOW()函數(shù)相同,不再贅述。
4 UNIX_TIMESTAMP(date)函數(shù)
將date轉(zhuǎn)化為UNIX時間戳。使用示例如下:
mysql> SELECT UNIX_TIMESTAMP(now()); +-----------------------+ | UNIX_TIMESTAMP(now()) | +-----------------------+ | 1576380910 | +-----------------------+ 1 row in set (0.01 sec) mysql> SELECT UNIX_TIMESTAMP(CURDATE()); +---------------------------+ | UNIX_TIMESTAMP(CURDATE()) | +---------------------------+ | 1576339200 | +---------------------------+ 1 row in set (0.00 sec) mysql> SELECT UNIX_TIMESTAMP(CURTIME()); +---------------------------+ | UNIX_TIMESTAMP(CURTIME()) | +---------------------------+ | 1576380969 | +---------------------------+ 1 row in set (0.00 sec)
5 FROM_UNIXTIME(timestamp)函數(shù)
FROM_UNIXTIME(timestamp)函數(shù)將UNIX時間戳轉(zhuǎn)化為日期時間,格式為YYYY-MM-DD HH:MM:SS,與UNIX_TIMESTAMP(date)函數(shù)互為反函數(shù)。使用示例如下:
mysql> SELECT FROM_UNIXTIME(1576380910); +---------------------------+ | FROM_UNIXTIME(1576380910) | +---------------------------+ | 2019-12-15 11:35:10 | +---------------------------+ 1 row in set (0.00 sec)
6 UTC_DATE()函數(shù)
UTC_DATE()函數(shù)用于返回UTC日期。使用示例如下:
mysql> SELECT UTC_DATE(); +------------+ | UTC_DATE() | +------------+ | 2019-12-15 | +------------+ 1 row in set (0.00 sec)
也可以返回YYYYMMDD格式的日期。使用示例如下:
mysql> SELECT UTC_DATE()+0; +--------------+ | UTC_DATE()+0 | +--------------+ | 20191215 | +--------------+ 1 row in set (0.00 sec)
7 UTC_TIME()函數(shù)
UTC_TIME()函數(shù)用于返回UTC時間。使用示例如下:
mysql> SELECT UTC_TIME(); +------------+ | UTC_TIME() | +------------+ | 06:39:00 | +------------+ 1 row in set (0.00 sec)
8 YEAR(date)函數(shù)
YEAR(date)函數(shù)用于返回日期所在的年份,取值返回為1970~2069。使用示例如下:
mysql> SELECT YEAR(NOW()); +-------------+ | YEAR(NOW()) | +-------------+ | 2019 | +-------------+ 1 row in set (0.00 sec)
注意:00~69會被轉(zhuǎn)化為2000~2069,70~99會被轉(zhuǎn)化為1970~1999。
9 MONTH(date)函數(shù)
MONTH(date)函數(shù)用于返回日期對應(yīng)的月份,取值返回為1~12。使用示例如下:
mysql> SELECT MONTH(NOW()); +--------------+ | MONTH(NOW()) | +--------------+ | 12 | +--------------+ 1 row in set (0.00 sec)
10 MONTHNAME(date)函數(shù)
MONTHNAME(date)函數(shù)用于返回日期所在月份的英文名稱。使用示例如下:
mysql> SELECT MONTHNAME(NOW()); +------------------+ | MONTHNAME(NOW()) | +------------------+ | December | +------------------+ 1 row in set (0.00 sec)
11 DAY(date)函數(shù)
DAY(date)函數(shù)只返回日期。使用示例如下:
mysql> SELECT DAY(NOW()); +------------+ | DAY(NOW()) | +------------+ | 15 | +------------+ 1 row in set (0.00 sec)
12 DAYNAME(date)函數(shù)
DAYNAME(date)函數(shù)用于返回日期對應(yīng)星期的英文名稱。使用示例如下:
mysql> SELECT DAYNAME(NOW()); +----------------+ | DAYNAME(NOW()) | +----------------+ | Sunday | +----------------+ 1 row in set (0.00 sec) mysql> SELECT DAYNAME('2020-01-01'); +-----------------------+ | DAYNAME('2020-01-01') | +-----------------------+ | Wednesday | +-----------------------+ 1 row in set (0.00 sec)
13 DAYOFWEEK(date)函數(shù)
DAYOFWEEK(date)函數(shù)用于返回日期對應(yīng)的一周中的索引值。1表示星期日,2表示星期一,以此類推。使用示例如下:
mysql> SELECT DAYOFWEEK(NOW()); +------------------+ | DAYOFWEEK(NOW()) | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec) mysql> SELECT DAYOFWEEK('2020-01-01'); +-------------------------+ | DAYOFWEEK('2020-01-01') | +-------------------------+ | 4 | +-------------------------+ 1 row in set (0.00 sec)
14 WEEKDAY(date)函數(shù)
WEEKDAY(date)函數(shù)返回日期對應(yīng)的一周中的索引值。0表示星期一,1表示星期二,以此類推。使用示例如下:
mysql> SELECT WEEKDAY(NOW()); +----------------+ | WEEKDAY(NOW()) | +----------------+ | 6 | +----------------+ 1 row in set (0.00 sec) mysql> SELECT WEEKDAY('2020-01-01'); +-----------------------+ | WEEKDAY('2020-01-01') | +-----------------------+ | 2 | +-----------------------+ 1 row in set (0.00 sec)
15 WEEK(date)函數(shù)
WEEK(date)函數(shù)返回給定日期是一年中的第幾周。使用示例如下:
mysql> SELECT WEEK(NOW()); +-------------+ | WEEK(NOW()) | +-------------+ | 50 | +-------------+ 1 row in set (0.00 sec)
16 WEEKOFYEAR(date)函數(shù)
WEEKOFYEAR(date)函數(shù)返回日期位于一年中的第幾周。使用示例如下:
mysql> SELECT WEEKOFYEAR(NOW()); +-------------------+ | WEEKOFYEAR(NOW()) | +-------------------+ | 50 | +-------------------+ 1 row in set (0.00 sec)
17 DAYOFYEAR(date)函數(shù)
DAYOFYEAR(date)函數(shù)返回日期是一年中的第幾天。使用示例如下:
mysql> SELECT DAYOFYEAR(NOW()); +------------------+ | DAYOFYEAR(NOW()) | +------------------+ | 349 | +------------------+ 1 row in set (0.00 sec)
18 DAYOFMONTH(date)函數(shù)
DAYOFMONTH(date)函數(shù)返回日期位于所在月份的第幾天。使用示例如下:
mysql> SELECT DAYOFMONTH(NOW()); +-------------------+ | DAYOFMONTH(NOW()) | +-------------------+ | 15 | +-------------------+ 1 row in set (0.00 sec)
19 QUARTER(date)函數(shù)
QUARTER(date)函數(shù)返回日期對應(yīng)的季度,范圍為1~4。使用示例如下:
mysql> SELECT QUARTER(NOW()); +----------------+ | QUARTER(NOW()) | +----------------+ | 4 | +----------------+ 1 row in set (0.00 sec)
20 HOUR(time)函數(shù)
HOUR(time)函數(shù)返回指定時間的小時。使用示例如下:
mysql> SELECT HOUR(NOW()); +-------------+ | HOUR(NOW()) | +-------------+ | 11 | +-------------+ 1 row in set (0.00 sec)
21 MINUTE(time)函數(shù)
MINUTE(time)函數(shù)返回指定時間的分鐘,取值范圍0~59。使用示例如下:
mysql> SELECT MINUTE(NOW()); +---------------+ | MINUTE(NOW()) | +---------------+ | 45 | +---------------+ 1 row in set (0.00 sec)
22 SECOND(time)函數(shù)
SECOND(time)函數(shù)返回指定時間的秒數(shù),取值范圍0~59。使用示例如下:
mysql> SELECT SECOND(NOW()); +---------------+ | SECOND(NOW()) | +---------------+ | 22 | +---------------+ 1 row in set (0.00 sec)
23 EXTRACT(type FROM date)函數(shù)
EXTRACT(type FROM date)函數(shù)返回指定日期中特定的部分,type指定返回的值。其中,type的取值如表11-1所示。
表11-1 EXTRACT(type FROM date)函數(shù)中type的取值與含義
注意:當EXTRACT(type FROM date)函數(shù)中的type取值為MINUTE_SECOND時,表示返回分鐘和秒值,當date中的分鐘為12,秒為12時,返回的結(jié)果為1212。也就是說,將分鐘后面直接拼接上秒值。type取值為其他帶有下劃線的值時,也遵循同樣的規(guī)律。
使用示例如下:
mysql> SELECT EXTRACT(HOUR_MINUTE FROM NOW()); +---------------------------------+ | EXTRACT(HOUR_MINUTE FROM NOW()) | +---------------------------------+ | 2142 | +---------------------------------+ 1 row in set (0.00 sec)
24 TIME_TO_SEC(time)函數(shù)
TIME_TO_SEC(time)函數(shù)將time轉(zhuǎn)化為秒并返回結(jié)果值。轉(zhuǎn)化的公式為:小時*3600+分鐘*60+秒。使用示例如下:
mysql> SELECT TIME_TO_SEC(NOW()); +--------------------+ | TIME_TO_SEC(NOW()) | +--------------------+ | 78774 | +--------------------+ 1 row in set (0.00 sec)
25 SEC_TO_TIME(seconds)函數(shù)
SEC_TO_TIME(seconds)函數(shù)將seconds描述轉(zhuǎn)化為包含小時、分鐘和秒的時間。使用示例如下:
mysql> SELECT SEC_TO_TIME(78774); +--------------------+ | SEC_TO_TIME(78774) | +--------------------+ | 21:52:54 | +--------------------+ 1 row in set (0.12 sec)
26 DATE_ADD(date,INTERVAL expr type)函數(shù)
DATE_ADD(date,INTERVAL expr type)函數(shù)返回與date相差I(lǐng)NTERVAL時間間隔的日期,本質(zhì)上是日期的加操作。該函數(shù)中的type是間隔的類型,間隔類型如表11-2所示。
表11-2 DATE_ADD(date,INTERVAL expr type)函數(shù)中type的取值
使用示例如下:
mysql> SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); +---------------------------------+ | DATE_ADD(NOW(), INTERVAL 1 DAY) | +---------------------------------+ | 2019-12-16 22:04:36 | +---------------------------------+ 1 row in set (0.00 sec)
ADDDATE(date,INTERVAL expr type)函數(shù)與DATE_ADD(date,INTERVAL expr type)函數(shù)的作用相同,不再贅述。
27 DATE_SUB(date,INTERVAL expr type)函數(shù)
DATE_SUB(date,INTERVAL expr type)函數(shù)返回與date相差I(lǐng)NTERVAL時間間隔的日期,本質(zhì)上是日期的減操作,其中type的取值見表11-2。使用示例如下:
mysql> SELECT DATE_SUB(NOW(), INTERVAL 1 DAY); +---------------------------------+ | DATE_SUB(NOW(), INTERVAL 1 DAY) | +---------------------------------+ | 2019-12-14 22:09:10 | +---------------------------------+ 1 row in set (0.00 sec)
SUBDATE(date,INTERVAL expr type)函數(shù)與DATE_SUB(date,INTERVAL expr type)函數(shù)作用相同,不再贅述。
注意:DATE_ADD、ADDDATE、DATE_SUB和SUBDATE這4個函數(shù)均可以指定負值。
28 ADDTIME(time1,time2)函數(shù)
ADDTIME(time1,time2)函數(shù)返回time1加上time2的時間。其中,time2是一個表達式,也可以是一個數(shù)字,當time2為一個數(shù)字時,代表的是秒。使用示例如下:
mysql> SELECT ADDTIME(NOW(), 50); +---------------------+ | ADDTIME(NOW(), 50) | +---------------------+ | 2019-12-15 22:17:47 | +---------------------+ 1 row in set (0.00 sec) mysql> SELECT ADDTIME(NOW(), '1:1:1'); +-------------------------+ | ADDTIME(NOW(), '1:1:1') | +-------------------------+ | 2019-12-15 23:18:46 | +-------------------------+ 1 row in set (0.00 sec)
ADDTIME(NOW(),'1:1:1')表示的含義為返回為當前時間加上1小時1分1秒之后的時間。
ADDTIME(time1,time2)函數(shù)中的time2的值也可以為負值。
mysql> SELECT ADDTIME(NOW(), '-1:-1:-1'); +----------------------------+ | ADDTIME(NOW(), '-1:-1:-1') | +----------------------------+ | 2019-12-15 22:19:29 | +----------------------------+ 1 row in set, 1 warning (0.01 sec)
ADDTIME(NOW(),'-1:-1:-1')表示的含義為返回當前時間減去1小時1分1秒之后的時間。
29 SUBTIME(time1,time2)函數(shù)
SUBTIME(time1,time2)函數(shù)返回time1減去time2后的時間。其中,time2是一個表達式,也可以是一個數(shù)字,當time2為一個數(shù)字時,代表的是秒。使用示例如下:
mysql> SELECT SUBTIME(NOW(), 50); +---------------------+ | SUBTIME(NOW(), 50) | +---------------------+ | 2019-12-15 22:23:35 | +---------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBTIME(NOW(), '1:1:1'); +-------------------------+ | SUBTIME(NOW(), '1:1:1') | +-------------------------+ | 2019-12-15 21:23:50 | +-------------------------+ 1 row in set (0.00 sec) mysql> SELECT SUBTIME(NOW(), '-1:-1:-1'); +----------------------------+ | SUBTIME(NOW(), '-1:-1:-1') | +----------------------------+ | 2019-12-15 22:25:11 | +----------------------------+ 1 row in set, 1 warning (0.00 sec)
30 DATEDIFF(date1,date2)函數(shù)
DATEDIFF(date1,date2)函數(shù)計算兩個日期之間相差的天數(shù)。使用示例如下:
mysql> SELECT DATEDIFF(NOW(), '1970-01-01'); +-------------------------------+ | DATEDIFF(NOW(), '1970-01-01') | +-------------------------------+ | 18245 | +-------------------------------+ 1 row in set (0.00 sec)
31 FROM_DAYS(N)函數(shù)
FROM_DAYS(N)函數(shù)返回從0000年1月1日起,N天以后的日期。使用示例如下:
mysql> SELECT FROM_DAYS(366); +----------------+ | FROM_DAYS(366) | +----------------+ | 0001-01-01 | +----------------+ 1 row in set (0.00 sec)
32 LAST_DAY(date)函數(shù)
LAST_DAY(date)函數(shù)返回date所在月份的最后一天的日期。使用示例如下:
mysql> SELECT LAST_DAY(NOW()); +-----------------+ | LAST_DAY(NOW()) | +-----------------+ | 2019-12-31 | +-----------------+ 1 row in set (0.00 sec)
33 MAKEDATE(year,n)函數(shù)
MAKEDATE(year,n)函數(shù)針對給定年份與所在年份中的天數(shù)返回一個日期。使用示例如下:
mysql> SELECT MAKEDATE(2020,1); +------------------+ | MAKEDATE(2020,1) | +------------------+ | 2020-01-01 | +------------------+ 1 row in set (0.00 sec) mysql> SELECT MAKEDATE(2020,32); +-------------------+ | MAKEDATE(2020,32) | +-------------------+ | 2020-02-01 | +-------------------+ 1 row in set (0.00 sec)
34 MAKETIME(hour,minute,second)函數(shù)
將給定的小時、分鐘和秒組合成時間并返回。使用示例如下:
mysql> SELECT MAKETIME(1,1,1); +-----------------+ | MAKETIME(1,1,1) | +-----------------+ | 01:01:01 | +-----------------+ 1 row in set (0.00 sec)
35 PERIOD_ADD(time,n)函數(shù)
PERIOD_ADD(time,n)函數(shù)返回time加上n后的時間。使用示例如下:
mysql> SELECT PERIOD_ADD(20200101010101,1); +------------------------------+ | PERIOD_ADD(20200101010101,1) | +------------------------------+ | 20200101010102 | +------------------------------+ 1 row in set (0.00 sec)
36 TO_DAYS(date)函數(shù)
TO_DAYS(date)函數(shù)返回日期date距離0000年1月1日的天數(shù)。使用示例如下:
mysql> SELECT TO_DAYS(NOW()); +----------------+ | TO_DAYS(NOW()) | +----------------+ | 737773 | +----------------+ 1 row in set (0.00 sec)
37 DATE_FORMAT(date,format)函數(shù)
DATE_FORMAT(date,format)函數(shù)按照指定的格式format來格式化日期date。其中,format常用的格式符如表11-3所示。
表11-3 DATE_FORMAT(date,format)函數(shù)中format常用的格式符
使用示例如下:
mysql> SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); +--------------------------------+ | DATE_FORMAT(NOW(), '%H:%i:%s') | +--------------------------------+ | 22:57:34 | +--------------------------------+ 1 row in set (0.00 sec)
38 TIME_FORMAT(time,format)函數(shù)
TIME_FORMAT(time,format)函數(shù)按照指定的格式format來格式化日期date。其中,format常用的格式符見表11-3。使用示例如下:
mysql> SELECT TIME_FORMAT(NOW(), '%H:%i:%s'); +--------------------------------+ | TIME_FORMAT(NOW(), '%H:%i:%s') | +--------------------------------+ | 22:59:40 | +--------------------------------+ 1 row in set (0.00 sec)
39 GET_FORMAT(date_type,format_type)函數(shù)
GET_FORMAT(date_type,format_type)函數(shù)返回日期字符串的顯示格式,其中date_type表示日期類型,format_type表示格式化類型。日期類型與格式化類型的取值如表11-4所示。
表11-4 GET_FORMAT函數(shù)返回的格式化字符串
使用示例如下:
mysql> SELECT GET_FORMAT(DATE, 'USA'); +-------------------------+ | GET_FORMAT(DATE, 'USA') | +-------------------------+ | %m.%d.%Y | +-------------------------+ 1 row in set (0.00 sec)
40 STR_TO_DATE(str,format)函數(shù)
STR_TO_DATE(str,format)函數(shù)將字符串str按照format格式轉(zhuǎn)化為日期或時間。其中,format的取值見表11-3。使用示例如下:
mysql> SELECT STR_TO_DATE('2020-01-01 00:00:00','%Y-%m-%d'); +-----------------------------------------------+ | STR_TO_DATE('2020-01-01 00:00:00','%Y-%m-%d') | +-----------------------------------------------+ | 2020-01-01 | +-----------------------------------------------+ 1 row in set, 1 warning (0.00 sec)
到此這篇關(guān)于Mysql中的日期時間函數(shù)小結(jié)的文章就介紹到這了,更多相關(guān)Mysql 日期時間函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mapper sql語句字段和實體類屬性名字有什么關(guān)系
這篇文章主要介紹了Mapper sql語句字段和實體類屬性名字有什么關(guān)系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11MySQL本地版本升級超詳細教程(從5.5.20升到8.0.21)
MySQL是一款廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),但是舊版本的客戶端可能會受到一些限制,下面這篇文章主要給大家介紹了關(guān)于MySQL本地版本升級超詳細教程,本文是從5.5.20升到8.0.21的相關(guān)資料,需要的朋友可以參考下2023-04-04Windows版mysql?8.0.28?安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Windows版mysql?8.0.28?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06oracle轉(zhuǎn)mysql語句轉(zhuǎn)換實例代碼
最近由于公司業(yè)務(wù)上需要,需要將原項目的數(shù)據(jù)庫由oracle轉(zhuǎn)換成mysql,下面這篇文章主要給大家介紹了關(guān)于oracle轉(zhuǎn)mysql語句轉(zhuǎn)換的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-06-06