一、引言
接下來討論和學習關于函數的第三個方面——日期函數。
常見的MySQL當中的日期函數。
注意:
1、CURDATE():cur:current 當前的,返回的是當前日期。
2、CURTIME():當前時間。
3、NOW:當前的日期和時間。
4、YEAR(date)、MONTH(date)、DAY(date):年月日
5、DATE_ADD(date,INTERVAL expr type):在指定日期的基礎上來增加,可以是年、月或者是天。取決于單位:type 。
6、DATEDIFF(date1、date2):返回這兩個日期相差的天數。
上面先簡單介紹學習到這里。接下來去工具 DataGrip 一個一個試一下這個里面涉及到的日期時間的函數。
二、實操
(1)當前日期:CURDATE();
SELECT CURDATE();
(2)當前時間:CURTIME();
SELECT CURTIME();
(3)當前日期和時間:NOW();
SELECT NOW();
(4)YEAR(date); MONTH(date); DAY(date);
SELECT YEAR(CURDATE());SELECT MONTH(NOW());SELECT DAY(NOW());
(5)DATE_ADD(date, INTERVAL expr type);?
SELECT DATE_ADD(NOW(),INTERVAL 70 DAY); SELECT DATE_ADD(NOW(),INTERVAL 70 MONTH); SELECT DATE_ADD(NOW(),INTERVAL 70 YEAR);
注意:
函數作用:返回在指定日期的基礎上來增加一個時間間隔之后的時間值。
interval:間隔
expr:我們指定的一個時間
type:時間的單位
(6) DATEDIFF(date1,date2);
返回的是兩個指定時間之間相差的天數。而且是第一個時間減去第二個時間:?(date1) - (date2) 。
SELECT DATEDIFF('2024-6-1','2024-5-12');
三、案例?
根據需求完成以下SQL編寫。
1、查詢所有員工的入職天數,并根據入職天數倒序排序。
SELECT name,DATEDIFF(CURDATE(),entrydate) AS entry_days FROM emp ORDER BY entry_days DESC;