首頁 > 軟體

MySQL學習之日期函數的用法詳解

2022-08-12 14:05:28

獲取 系統時間 函數

“NOW()” 函數 能夠獲得當前系統日期和時間,格式如下:“YYYY-MM-DD hh:mm:ss” (這裡的小時單位是 24 小時制)

“CURDATE()” 函數 能夠獲取到當前系統的日期,格式如下:“YYYY-MM-DD”

“CURTIME()” 函數 能夠獲得當前系統時間,格式如下:“hh:mm:ss” (24小時制)

SELECT NOW();            -- 返回結果 "2020-06-10 17:22:51"  (範例)
SELECT CURDATE();        -- 返回結果 "2020-06-10"
SELECT CURTIME();        -- 返回結果 "17:22:52"

日期格式化 函數

“DATE_FORMAT()” 函數 用於格式化日期,可以幫助我們提取出非常有用的日期資訊

語法如下:

DATE_FORMAT(日期, 表示式)

SELECT ename, DATE_FORMAT(hiredate,"%Y") AS "入職日期" FROM t_emp;

預留位置作用預留位置作用
%Y年份%m月份
%d日期%w星期(數位)- (0為週日)
%W星期(名稱)- (英文)%j本年的第幾天
%U本年的第幾周%H小時(24)
%h小時(12)%i分鐘
%s%r時間(24)
%T 時間(12)  

日期函數練習①

利用 “日期函數” ,查詢生日那天是周幾。

SELECT DATE_FORMAT("2018-01-01","%W");        -- 返回結果為 "Monday"

日期函數練習②

利用 “日期函數” ,查詢 1981 年上半年入職的員工人數有多少人?

SELECT COUNT(*)
FROM t_emp
WHERE DATE_FORMAT(hiredate,"%Y") = 1981
AND DATE_FORMAT(hiredate,"%m") <= 6;

日期計算的注意事項

在 MySQL 中,兩個日期之間是不能夠直接進行相加或相減的;同時,日期也是不能夠與數位進行相加、減的。

原因在於,日期是一個特殊計算單位,而且進位制之間也不是普通的十進位制那樣。

雖然我們使用 日期 去進行 “+1” 的操作不會產生語法上的錯誤,但是得到的結果是純數位,而不是我們想要的日期格式的結果。(範例如下)

SELECT ename, hiredate, hiredate+1 FROM t_emp;

日期偏移計算

DATE_ADD() 函數 可以實現日期的偏移計算,並且在 時間單位的處理上,比較的靈活。

語法如下:

SELECT DATE_ADD("原始日期", INTERVAL, 偏移量, 時間單位)        -- INTERVAL 是 關鍵字

"DATE_ADD() 函數" 演示案例如下

SELECT DATE_ADD(NOW(), INTERVAL 10 DAY);         -- 得到的結果為 10 天 之後的日期時間
SELECT DATE_ADD(NOW(), INTERVAL -500 MINUTE);         -- 得到的結果為 500 分鐘 之前的日期時間
SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY);         -- 得到的結果為 6 個月 3 天 之前的日期時間
SELECT 
DATE_FORMAT(
DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY) , "%Y-%m-%d") AS DATE;     -- 返回 "%Y-%m-%d" 格式結果

計算日期之間相隔的天數

DATEDIFF() 函數 用來計算兩個日期之間相差的天數,語法如下:

DATEDIFF("日期", "日期")

查詢 10 部門中年收入超過 15000 且工齡超過 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 函數的語法,當第一個引數的值為null 的時候,則返回第二個引數的值
-- DATEDIFF(expr1,expr2):DATEDIFF 函數的語法,計算第一個日期與第二個日期的偏差時間差
-- NOW():NOW 函數可以獲得當前日期

到此這篇關於MySQL學習之日期函數的用法詳解的文章就介紹到這了,更多相關MySQL日期函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com