零基础自学SQL课程 | SQL中的日期函数大全
大家好,我是寧一。
今天是我們的第21課:SQL中的日期函數(shù)。
MySQL中內(nèi)置的日期函數(shù),包括獲取日期、日期格式化、日期計算,我們分別來看看。
1、獲取日期函數(shù)
MySQL內(nèi)置的獲取日期時間函數(shù):
SELECT NOW() AS '當(dāng)前日期+時間',CURDATE() AS '當(dāng)前日期',CURTIME() AS '當(dāng)前時間';獲取具體年月日函數(shù):
SELECT YEAR("2022-04-11 15:44:28") AS '年',MONTH("2022-04-11 15:44:28") AS '月',DAY("2022-04-11 15:44:28") AS '日',HOUR("2022-04-11 15:44:28") AS '小時',MINUTE("2022-04-11 15:44:28") AS '分鐘',SECOND("2022-04-11 15:44:28") AS '秒',DAYNAME("2022-04-11 15:44:28") AS '星期幾',MONTHNAME("2022-04-11 15:44:28") AS '幾月';實例:在Students表中,找出生日Sage為1995年的學(xué)生記錄。
SELECT * FROM Students WHERE YEAR(Sage) = 1995我們之前也做過這個題,用BETWEEN…AND…實現(xiàn)的,可以點擊主頁找到第五講--WHERE條件子句復(fù)習(xí)一下~
2、格式化日期函數(shù)
我們主要使用 DATE_FORMAT、TIME_FORMAT函數(shù)對日期和時間進(jìn)行格式化,來看看具體用法。
SELECTNOW() AS "現(xiàn)在時間",DATE_FORMAT(NOW(), '%Y.%m.%d') AS '格式化日期',TIME_FORMAT(NOW(), '%h:%i:%s') AS '格式化時間'可以使用的格式有:
3、計算日期函數(shù)
實際業(yè)務(wù)中,我們經(jīng)常要計算日期和時間,比如在日期基礎(chǔ)上增加減少一天,或者計算日期間隔,來看看具體用法。
在日期基礎(chǔ)上增加減少天數(shù):
SELECTNOW() AS "現(xiàn)在時間",DATE_ADD(NOW(), INTERVAL 1 DAY) AS "增加1天",DATE_SUB(NOW(), INTERVAL 1 DAY) AS "減少1天"還可以增加減少年、月、小時、分鐘:
SELECTNOW() AS "現(xiàn)在時間",DATE_ADD(NOW(), INTERVAL 1 YEAR) AS "增加1年",DATE_SUB(NOW(), INTERVAL 1 MONTH) AS "減少1天",DATE_SUB(NOW(), INTERVAL 1 HOUR) AS "減少1小時"計算兩個日期間隔天數(shù):
SELECTDATEDIFF('2022-04-11','2021-04-11') AS "間隔天數(shù)",DATEDIFF('2022-04-11 01:00','2022-04-10 23:00') AS "間隔天數(shù)"注意DATEDIFF函數(shù)會忽略時間部分,只算日期差異,比如,上面SQL語句中04-10 23:00到04-11 01:00只差了兩個小時,但是用DATEDIFF函數(shù)會計算時間間隔為1天。
作業(yè):在Students表中,通過學(xué)生生日Sage,計算每個學(xué)生的年齡,最終顯示今天日期、學(xué)生姓名、學(xué)生年齡3列。
作業(yè)解析:通過DATEDIFF函數(shù),計算今天與學(xué)生生日Sage相差的天數(shù),除以365得到年數(shù),再通過FLOOR數(shù)值函數(shù),取小于年齡的大整數(shù)。
SELECTDATE_FORMAT(NOW(),'%Y-%m-%d') AS '今天日期',Sname AS '學(xué)生姓名',FLOOR(DATEDIFF(NOW(),Sage)/365) AS "學(xué)生年齡" FROM Students;要注意上面這些函數(shù)不是標(biāo)準(zhǔn)SQL語句,而是MySQL軟件中內(nèi)置的函數(shù),在Oracle、或者SQL Server中不一定通用。
下節(jié)課我們講講 IF 函數(shù)。
點擊關(guān)注,更新課程第一時間通知哦~
總結(jié)
以上是生活随笔為你收集整理的零基础自学SQL课程 | SQL中的日期函数大全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva10160(dfs+状态压缩)
- 下一篇: 飞腾服务器虚拟化,基于飞腾平台的容器虚拟