您好,登錄后才能下訂單哦!
小編給大家分享一下MySQL中日期函數(shù)有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
日期函數(shù)類型:
(1)獲取當(dāng)前日期的函數(shù)和獲取當(dāng)前時(shí)間的函數(shù)
(2)獲取當(dāng)前日期和時(shí)間的函數(shù)
(3)UNIX時(shí)間戳函數(shù)
(4)返回UTC日期的函數(shù)和返回UTC時(shí)間的函數(shù)
(5)獲取月份的函數(shù)month(date)和monthname(date)
(6)獲取星期的函數(shù)dayname(d)、dayofweek(d)和weekday(d)
(7)獲取星期數(shù)的函數(shù)week(d)和dayofyear(d)
(8)獲取天數(shù)的函數(shù)dayofyear(d)和dayofmonth(d)
(9)獲取年份、季度、小時(shí)、分鐘和秒鐘的函數(shù)。
(10)獲取日期的指定值的函數(shù)extract(type from date)
(11)時(shí)間和秒鐘轉(zhuǎn)換的函數(shù)
(12)計(jì)算日期和時(shí)間的函數(shù)
(13)將日期和時(shí)間格式化的函數(shù)
(相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql視頻教程)
1.curdate()和current_date()
【例】使用日期函數(shù)獲取系統(tǒng)當(dāng)前日期
,SQL語句如下:
mysql> select curdate(),current_date(),curdate()+0;+------------+----------------+-------------+| curdate() | current_date() | curdate()+0 |+------------+----------------+-------------+| 2019-08-18 | 2019-08-18 | 20190818 |+------------+----------------+-------------+1 row in set (0.00 sec)
curdate()+0表示將當(dāng)前日期值轉(zhuǎn)換為數(shù)值型。
2.curtime()和current_time()
【例】使用時(shí)間函數(shù)獲取系統(tǒng)當(dāng)前時(shí)間
,SQL語句如下:
mysql> select curtime(),current_time(),curtime()+0;+-----------+----------------+-------------+| curtime() | current_time() | curtime()+0 |+-----------+----------------+-------------+| 17:08:07 | 17:08:07 | 170807 |+-----------+----------------+-------------+1 row in set (0.00 sec)
curtime()+0表示將當(dāng)前時(shí)間值轉(zhuǎn)換為數(shù)值型。
current_timestamp()、localtime()、now()和sysdate()四個(gè)函數(shù)作用相同,都是返回當(dāng)前日期和時(shí)間值。
【例】使用日期時(shí)間函數(shù)獲取當(dāng)前系統(tǒng)時(shí)間和日期,SQL語句如下:
mysql> select current_timestamp(), -> localtime(), -> now(), -> sysdate();+---------------------+---------------------+---------------------+---------------------+| current_timestamp() | localtime() | now() | sysdate() |+---------------------+---------------------+---------------------+---------------------+| 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 | 2019-08-18 19:10:05 |+---------------------+---------------------+---------------------+---------------------+1 row in set (0.05 sec)
unix_timestamp(date)若為無參數(shù)調(diào)用,則返回一個(gè)unix時(shí)間戳(GMT之后的秒數(shù),GMT為格林尼治標(biāo)準(zhǔn)時(shí)間1970.1.1)作為無符號(hào)整數(shù)。
date可以是一個(gè)date字符串,datetime字符串、timestamp或一個(gè)當(dāng)?shù)貢r(shí)間的YY[YY]MMDD格式的數(shù)字。
1.unix_timestamp(date)
【例】使用unix_timestamp函數(shù)返回unix格式的時(shí)間戳,SQL語句如下:
mysql> select unix_timestamp(),unix_timestamp(now()),now();+------------------+-----------------------+---------------------+| unix_timestamp() | unix_timestamp(now()) | now() |+------------------+-----------------------+---------------------+| 1566127316 | 1566127316 | 2019-08-18 19:21:56 |+------------------+-----------------------+---------------------+1 row in set (0.05 sec)
from_unixtime()函數(shù)吧unix時(shí)間戳轉(zhuǎn)換為普通格式的時(shí)間,與unix_timestamp(date)函數(shù)互為反函數(shù)。
2.from_unixtime(date)
【例】使用from_unixtime函數(shù)將unix時(shí)間戳轉(zhuǎn)換為普通格式時(shí)間,SQL語句如下:
mysql> select from_unixtime('1566127316');+-----------------------------+| from_unixtime('1566127316') |+-----------------------------+| 2019-08-18 19:21:56.000000 |+-----------------------------+1 row in set (0.00 sec)
1.UTC_DATE()
【例】使用utc_date()函數(shù)返回當(dāng)前UTC日期值,SQL語句如下:
mysql> select utc_date(),utc_date()+0;+------------+--------------+| utc_date() | utc_date()+0 |+------------+--------------+| 2019-08-18 | 20190818 |+------------+--------------+1 row in set (0.05 sec)
2.UTC_TIME()
【例】使用UTC_TIME()函數(shù)返回當(dāng)前UTC時(shí)間值,SQL語句如下:
mysql> select utc_time(),utc_time()+0;+------------+--------------+| utc_time() | utc_time()+0 |+------------+--------------+| 11:32:27 | 113227 |+------------+--------------+1 row in set (0.00 sec)
1.month(date)
【例】使用month()函數(shù)返回指定日期中的月份,SQL語句如下:
mysql> select month('2019-08-18');+---------------------+| month('2019-08-18') |+---------------------+| 8 |+---------------------+1 row in set (0.00 sec)
2.monthname(date)
【例】使用monthname()函數(shù)返回指定日期中的月份名稱,SQL語句如下:
mysql> select monthname('2019-08-18');+-------------------------+| monthname('2019-08-18') |+-------------------------+| August |+-------------------------+1 row in set (0.00 sec)
1.dayname(d)
【例】使用dayname()函數(shù)返回指定日期的工作日名稱,SQL語句如下:
mysql> select dayname('2019-08-18');+-----------------------+| dayname('2019-08-18') |+-----------------------+| Sunday |+-----------------------+1 row in set (0.00 sec)
2.dayofweek(d)
【例】使用dayofweek()函數(shù)返回日期對(duì)應(yīng)的周索引,SQL語句如下:
mysql> select dayofweek('2019-08-18');+-------------------------+| dayofweek('2019-08-18') |+-------------------------+| 1 |+-------------------------+1 row in set (0.00 sec)
3.weekday(d)
weekday(d)返回d對(duì)應(yīng)的工作日索引:0代表周一,1代代表周二,…6代表周日。
【例】使用weekday()函數(shù)返回日期對(duì)應(yīng)的工作日索引,SQL語句如下:
mysql> select weekday('2019-08-18 19:40:00'), -> weekday('2019-08-18');+--------------------------------+-----------------------+| weekday('2019-08-18 19:40:00') | weekday('2019-08-18') |+--------------------------------+-----------------------+| 6 | 6 |+--------------------------------+-----------------------+1 row in set (0.00 sec)
week(d)計(jì)算日期d是一年中第幾周,雙參形式允許指定該星期是否起始于周日或周一,若Mode參數(shù)被忽略,使用default_week_format系統(tǒng)自變量的值。
1.week(d)
【例】使用week()函數(shù)查詢指定日期是一年中的第幾周,SQL語句如下:
mysql> select week('2019-08-18'),week('2019-08-18',0),week('2019-08-18',1);+--------------------+----------------------+----------------------+| week('2019-08-18') | week('2019-08-18',0) | week('2019-08-18',1) |+--------------------+----------------------+----------------------+| 33 | 33 | 33 |+--------------------+----------------------+----------------------+1 row in set (0.05 sec
2.weekofyear(d)
【例】使用weekofyear()查詢指定日期是一年中的第幾周,SQL語句如下:
mysql> select week('2019-08-18',3),weekofyear('2019-08-18');+----------------------+--------------------------+| week('2019-08-18',3) | weekofyear('2019-08-18') |+----------------------+--------------------------+| 33 | 33 |+----------------------+--------------------------+1 row in set (0.05 sec)
1.dayofyear()
【例】使用dayofyear()函數(shù)返回指定日期在一年中的位置,SQL語句如下:
mysql> select dayofyear('2019-08-18');+-------------------------+| dayofyear('2019-08-18') |+-------------------------+| 230 |+-------------------------+1 row in set (0.00 sec)
2.dayofmonth()
【例】使用dayofmonth()函數(shù)返回指定日期在一個(gè)月中的位置,SQL語句如下;
mysql> select dayofmonth('2019-08-18');+--------------------------+| dayofmonth('2019-08-18') |+--------------------------+| 18 |+--------------------------+1 row in set (0.00 sec)
1.YEAR(date)
【例】使用year()函數(shù)返回指定日期對(duì)應(yīng)的年份,SQL語句如下:
mysql> select year('19-08-18'),year('98-02-19');+------------------+------------------+| year('19-08-18') | year('98-02-19') |+------------------+------------------+| 2019 | 1998 |+------------------+------------------+1 row in set (0.05 sec)
2.QUARTER(date)
【例】使用quarter()函數(shù)返回指定日期對(duì)應(yīng)的季度,SQL語句如下:
mysql> select quarter('19-08-18');+---------------------+| quarter('19-08-18') |+---------------------+| 3 |+---------------------+1 row in set (0.00 sec)
3.MINUTE(time)
【例】使用minute()函數(shù)返回指定時(shí)間的分鐘值,SQL語句如下:
mysql> select minute('19-08-18 20:07:00');+-----------------------------+| minute('19-08-18 20:07:00') |+-----------------------------+| 7 |+-----------------------------+1 row in set (0.00 sec)
4.SECOND(time)
【例】使用second()函數(shù)返回指定時(shí)間的秒值,SQL語句如下:
mysql> select second('20:07:00');+--------------------+| second('20:07:00') |+--------------------+| 0 |+--------------------+1 row in set (0.00 sec)
【例】使用extract(type from date)函數(shù)提取日期或時(shí)間值。
mysql> select extract(year from '2019-08-18') as col1, -> extract(year_month from '2019-08-18 20:46:01') as col2, -> extract(day_minute from '2019-08-18 20:46:01') as col3;+------+--------+--------+| col1 | col2 | col3 |+------+--------+--------+| 2019 | 201908 | 182046 |+------+--------+--------+1 row in set (0.00 sec)
1.time_to_sec(time)
time_to_sec(time)返回已經(jīng)轉(zhuǎn)化為秒的time參數(shù)。轉(zhuǎn)換公式為:小時(shí)x3600+分鐘*60+秒。
【例】使用time_to_sec函數(shù)將時(shí)間值轉(zhuǎn)換為秒值。
mysql> select time_to_sec('20:34:00');+-------------------------+| time_to_sec('20:34:00') |+-------------------------+| 74040 |+-------------------------+1 row in set (0.00 sec)
2.sec_to_time(seconds)
sec_to_time函數(shù)返回值加上0值之后變成了小數(shù)值。
time_to_sec正好和sec_to_time互為反函數(shù)。
【例】使用sec_to_time()函數(shù)將秒值轉(zhuǎn)換為時(shí)間格式,SQL語句如下;
mysql> select sec_to_time(2345),sec_to_time(2345)+0, -> time_to_sec('20:36:00'),sec_to_time('74040');+-------------------+---------------------+-------------------------+----------------------+| sec_to_time(2345) | sec_to_time(2345)+0 | time_to_sec('20:36:00') | sec_to_time('74040') |+-------------------+---------------------+-------------------------+----------------------+| 00:39:05 | 3905 | 74160 | 20:34:00.000000 |+-------------------+---------------------+-------------------------+----------------------+1 row in set (0.05 sec)
MySQL中計(jì)算日期和時(shí)間的格式:
1.date_add(date,interval expr type)
和adddate(date,interval expr type)
兩個(gè)函數(shù)的作用相同,執(zhí)行日期的加運(yùn)算:
【例】使用date_add()和adddate()函數(shù)執(zhí)行日期加操作,SQL語句如下:
mysql> select date_add('2019-08-18 23:59:59',interval 1 second) as col1, -> adddate('2019-08-18 23:59:59',interval 1 second) as col2, -> date_add('2019-08-18 23:59:59',interval '1:1' minute_second) as col3;+---------------------+---------------------+---------------------+| col1 | col2 | col3 |+---------------------+---------------------+---------------------+| 2019-08-19 00:00:00 | 2019-08-19 00:00:00 | 2019-08-19 00:01:00 |+---------------------+---------------------+---------------------+1 row in set (0.05 sec)
2.date_sub(date,interval expr type)
和subdate(date,interval expr type)
兩個(gè)函數(shù)作用相同,執(zhí)行日期的減運(yùn)算:
【例】使用date_sub和subdate函數(shù)執(zhí)行日期減操作,SQL語句如下:
mysql> select date_sub('2019-08-18',interval 31 day) as col1, -> subdate('2019-08-18',interval 31 day) as col2, -> date_sub('2019-08-18 21:15:10',interval '0 0:1:1' day_second) as col3;+------------+------------+---------------------+| col1 | col2 | col3 |+------------+------------+---------------------+| 2019-07-18 | 2019-07-18 | 2019-08-18 21:14:09 |+------------+------------+---------------------+1 row in set (0.00 sec)
3.addtime(date,expr)
函數(shù)將expr值添加到date,并返回修改后的值,date是一個(gè)日期或者日期時(shí)間表達(dá)式,而expr是一個(gè)時(shí)間表達(dá)式。
【例】使用addtime進(jìn)行時(shí)間加操作,SQL語句如下;
mysql> select addtime('2019-08-18 21:59:59','1:1:1'),addtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| addtime('2019-08-18 21:59:59','1:1:1') | addtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 23:01:00 | 04:02:02 |+----------------------------------------+--------------------------------+1 row in set (0.05 sec)
4.subtime(date,expr)
函數(shù)將date減去expr值,并返回修改后的值,date是一個(gè)日期或者日期時(shí)間表達(dá)式,expr是一個(gè)時(shí)間表達(dá)式。
【例】使用subtime()函數(shù)執(zhí)行減操作,SQL語句如下:
mysql> select subtime('2019-08-18 21:59:59','1:1:1'),subtime('02:02:02','02:00:00');+----------------------------------------+--------------------------------+| subtime('2019-08-18 21:59:59','1:1:1') | subtime('02:02:02','02:00:00') |+----------------------------------------+--------------------------------+| 2019-08-18 20:58:58 | 00:02:02 |+----------------------------------------+--------------------------------+1 row in set (0.00 sec)
5.datediff(date1,date2)返回起始時(shí)間date1和結(jié)束時(shí)間date2之間的天數(shù),date1和date2為日期或date-and-time表達(dá)式。計(jì)算中只用到這些值的日期部分。
【例】使用datediff()函數(shù)計(jì)算兩個(gè)日期之間的間隔天數(shù),SQL語句如下;
mysql> select datediff('2019-08-18 21:59:59','2018-07-18') as col1, -> datediff('2019-08-18 22:00:00','2019-08-20') as col2;+------+------+| col1 | col2 |+------+------+| 396 | -2 |+------+------+1 row in set (0.00 sec)
DATE_FORMAT時(shí)間日期格式:
1.date_format()
【例】使用date_format()函數(shù)格式化輸出日期和時(shí)間值,SQL語句如下:
mysql> select date_format('2019-08-18 23:33:00','%w %m %y') as col1, -> date_format('2019-08-18 23:33:00','%D %y %a %d %m %b %j') as col2;+---------+---------------------------+| col1 | col2 |+---------+---------------------------+| 0 08 19 | 18th 19 Sun 18 08 Aug 230 |+---------+---------------------------+1 row in set (0.05 sec)
2.time_format()
【例】使用time_format(time,format)函數(shù)格式化輸入時(shí)間值,SQL語句如下:
mysql> select time_format('23:39:30','%H %k %h %I %l');+------------------------------------------+| time_format('23:39:30','%H %k %h %I %l') |+------------------------------------------+| 23 23 11 11 11 |+------------------------------------------+1 row in set (0.00 sec)
3.get_format()
get_format返回的格式字符串:
【例】使用get_format()函數(shù)顯示不同格式化類型下的格式字符串,SQL語句如下:
mysql> select get_format(date,'eur'),get_format(date,'usa');+------------------------+------------------------+| get_format(date,'eur') | get_format(date,'usa') |+------------------------+------------------------+| %d.%m.%Y | %m.%d.%Y |+------------------------+------------------------+1 row in set (0.05 sec)
【例】在date_format()函數(shù)中,使用get_format函數(shù)返回的顯示格式字符串來顯示指定的日期值,SQL語句如下:
mysql> select date_format('2019-08-19 23:41:30',get_format(date,'usa'));+-----------------------------------------------------------+| date_format('2019-08-19 23:41:30',get_format(date,'usa')) |+-----------------------------------------------------------+| 08.19.2019 |+-----------------------------------------------------------+1 row in set (0.00 sec)
看完了這篇文章,相信你對(duì)“MySQL中日期函數(shù)有哪些”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。