MySQL學(xué)習(xí)之日期函數(shù)的用法詳解
獲取 系統(tǒng)時(shí)間 函數(shù)
“NOW()” 函數(shù) 能夠獲得當(dāng)前系統(tǒng)日期和時(shí)間,格式如下:“YYYY-MM-DD hh:mm:ss” (這里的小時(shí)單位是 24 小時(shí)制)
“CURDATE()” 函數(shù) 能夠獲取到當(dāng)前系統(tǒng)的日期,格式如下:“YYYY-MM-DD”
“CURTIME()” 函數(shù) 能夠獲得當(dāng)前系統(tǒng)時(shí)間,格式如下:“hh:mm:ss” (24小時(shí)制)
SELECT NOW(); -- 返回結(jié)果 "2020-06-10 17:22:51" (示例)
SELECT CURDATE(); -- 返回結(jié)果 "2020-06-10"
SELECT CURTIME(); -- 返回結(jié)果 "17:22:52"
日期格式化 函數(shù)
“DATE_FORMAT()” 函數(shù) 用于格式化日期,可以幫助我們提取出非常有用的日期信息
語(yǔ)法如下:
DATE_FORMAT(日期, 表達(dá)式)
SELECT ename, DATE_FORMAT(hiredate,"%Y") AS "入職日期" FROM t_emp;

| 占位符 | 作用 | 占位符 | 作用 |
|---|---|---|---|
| %Y | 年份 | %m | 月份 |
| %d | 日期 | %w | 星期(數(shù)字)- (0為周日) |
| %W | 星期(名稱)- (英文) | %j | 本年的第幾天 |
| %U | 本年的第幾周 | %H | 小時(shí)(24) |
| %h | 小時(shí)(12) | %i | 分鐘 |
| %s | 秒 | %r | 時(shí)間(24) |
| %T | 時(shí)間(12) |
日期函數(shù)練習(xí)①
利用 “日期函數(shù)” ,查詢生日那天是周幾。
SELECT DATE_FORMAT("2018-01-01","%W"); -- 返回結(jié)果為 "Monday"
日期函數(shù)練習(xí)②
利用 “日期函數(shù)” ,查詢 1981 年上半年入職的員工人數(shù)有多少人?
SELECT COUNT(*) FROM t_emp WHERE DATE_FORMAT(hiredate,"%Y") = 1981 AND DATE_FORMAT(hiredate,"%m") <= 6;

日期計(jì)算的注意事項(xiàng)
在 MySQL 中,兩個(gè)日期之間是不能夠直接進(jìn)行相加或相減的;同時(shí),日期也是不能夠與數(shù)字進(jìn)行相加、減的。
原因在于,日期是一個(gè)特殊計(jì)算單位,而且進(jìn)制之間也不是普通的十進(jìn)制那樣。
雖然我們使用 日期 去進(jìn)行 “+1” 的操作不會(huì)產(chǎn)生語(yǔ)法上的錯(cuò)誤,但是得到的結(jié)果是純數(shù)字,而不是我們想要的日期格式的結(jié)果。(示例如下)
SELECT ename, hiredate, hiredate+1 FROM t_emp;

日期偏移計(jì)算
DATE_ADD() 函數(shù) 可以實(shí)現(xiàn)日期的偏移計(jì)算,并且在 時(shí)間單位的處理上,比較的靈活。
語(yǔ)法如下:
SELECT DATE_ADD("原始日期", INTERVAL, 偏移量, 時(shí)間單位) -- INTERVAL 是 關(guān)鍵字
"DATE_ADD() 函數(shù)" 演示案例如下
SELECT DATE_ADD(NOW(), INTERVAL 10 DAY); -- 得到的結(jié)果為 10 天 之后的日期時(shí)間
SELECT DATE_ADD(NOW(), INTERVAL -500 MINUTE); -- 得到的結(jié)果為 500 分鐘 之前的日期時(shí)間
SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY); -- 得到的結(jié)果為 6 個(gè)月 3 天 之前的日期時(shí)間
SELECT DATE_FORMAT( DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY) , "%Y-%m-%d") AS DATE; -- 返回 "%Y-%m-%d" 格式結(jié)果
計(jì)算日期之間相隔的天數(shù)
DATEDIFF() 函數(shù) 用來(lái)計(jì)算兩個(gè)日期之間相差的天數(shù),語(yǔ)法如下:
DATEDIFF("日期", "日期")
查詢 10 部門(mén)中年收入超過(guò) 15000 且工齡超過(guò) 20年 的員工的信息。
SELECT empno, ename, sal, hiredate FROM t_emp WHERE deptno = 10 AND (sal + IFNULL(comm,0)) * 12 >=15000 AND DATEDIFF(NOW(),hiredate)/365 >= 20 -- IFNULL(expr1,expr2):IFNULL 函數(shù)的語(yǔ)法,當(dāng)?shù)谝粋€(gè)參數(shù)的值為null 的時(shí)候,則返回第二個(gè)參數(shù)的值 -- DATEDIFF(expr1,expr2):DATEDIFF 函數(shù)的語(yǔ)法,計(jì)算第一個(gè)日期與第二個(gè)日期的偏差時(shí)間差 -- NOW():NOW 函數(shù)可以獲得當(dāng)前日期

到此這篇關(guān)于MySQL學(xué)習(xí)之日期函數(shù)的用法詳解的文章就介紹到這了,更多相關(guān)MySQL日期函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL日期格式以及日期函數(shù)舉例詳解
- Mysql日期格式以及內(nèi)置日期函數(shù)用法詳解
- 使用Pandas?實(shí)現(xiàn)MySQL日期函數(shù)的解決方法
- mysql日期函數(shù)TO_DAYS()函數(shù)的詳細(xì)講解
- MySQL日期函數(shù)與時(shí)間函數(shù)匯總(MySQL 5.X)
- MySQL日期函數(shù)與日期轉(zhuǎn)換格式化函數(shù)大全
- mysql 獲取當(dāng)前日期函數(shù)及時(shí)間格式化參數(shù)詳解
- 深入mysql YEAR() MONTH() DAYOFMONTH()日期函數(shù)的詳解
- mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函數(shù)
- mysql日期函數(shù)用法大全
相關(guān)文章
Mysql數(shù)據(jù)庫(kù)介紹及mysql顯示命令
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)介紹及mysql顯示命令 的相關(guān)資料,需要的朋友可以參考下2016-04-04
MySQL重啟之后無(wú)法寫(xiě)入數(shù)據(jù)的問(wèn)題排查及解決
客戶在給系統(tǒng)打補(bǔ)丁之后需要重啟服務(wù)器,數(shù)據(jù)庫(kù)在重啟之后,read_only 的設(shè)置與標(biāo)準(zhǔn)配置 文件中不一致,導(dǎo)致主庫(kù)在啟動(dòng)之后無(wú)法按照預(yù)期寫(xiě)入,所以本文給大家介紹了MySQL重啟之后無(wú)法寫(xiě)入數(shù)據(jù)的問(wèn)題排查及解決,需要的朋友可以參考下2024-05-05
Ubuntu中MySQL的參數(shù)文件my.cnf示例詳析
這篇文章主要給大家介紹了關(guān)于Ubuntu中MySQL的參數(shù)文件my.cnf的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
mysql字符集引起的java.sql.SQLException:Incorrect?string?value:問(wèn)題
文章主要介紹了在MySQL數(shù)據(jù)庫(kù)中插入生僻字和emoji表情包時(shí)遇到的字符編碼問(wèn)題,解釋了utf8和utf8mb4的區(qū)別,并提供了修改數(shù)據(jù)庫(kù)編碼格式和更改MySQL參數(shù)的解決方案2024-11-11
mysql在項(xiàng)目中怎么選事務(wù)隔離級(jí)別
Mysql默認(rèn)的事務(wù)隔離級(jí)別是可重復(fù)讀,那互聯(lián)網(wǎng)項(xiàng)目中Mysql也是用默認(rèn)隔離級(jí)別,但在項(xiàng)目中呢,下面我們就一起來(lái)了解一下2021-05-05
Mysql數(shù)據(jù)庫(kù)性能優(yōu)化一
今天,數(shù)據(jù)庫(kù)的操作越來(lái)越成為整個(gè)應(yīng)用的性能瓶頸了,這點(diǎn)對(duì)于Web應(yīng)用尤其明顯。關(guān)于數(shù)據(jù)庫(kù)的性能,這并不只是DBA才需要擔(dān)心的事,而這更是我們程序員需要去關(guān)注的事情2016-04-04
解決Linux安裝mysql 在/etc下沒(méi)有my.cnf的問(wèn)題
這篇文章主要介紹了解決Linux安裝mysql 在/etc下沒(méi)有my.cnf的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01

