您好,登錄后才能下訂單哦!
這篇文章主要講解了“Mysql中TIMESTAMPDIFF函數的語法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Mysql中TIMESTAMPDIFF函數的語法是什么”吧!
TIMESTAMPDIFF函數用于計算兩個日期的時間差
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
unit: 日期比較返回的時間差單位,常用可選值如下:
SECOND:秒
MINUTE:分鐘
HOUR:小時
DAY:天
WEEK:星期
MONTH:月
QUARTER:季度
YEAR:年
datetime_expr1: 要比較的日期1
datetime_expr2: 要比較的日期2
TIMESTAMPDIFF函數返回datetime_expr2 - datetime_expr1的結果,其中datetime_expr1和datetime_expr2可以是DATE或DATETIME類型值
-- 相差:25秒 SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 14:57:00','2022-04-23 14:57:25'); -- 相差:5分鐘 SELECT TIMESTAMPDIFF(MINUTE,'2022-04-23 15:00:00','2022-04-23 15:05:00'); -- 相差:5小時 SELECT TIMESTAMPDIFF(HOUR,'2022-04-23 11:20:00', '2022-04-23 16:20:00'); -- 相差:2天 SELECT TIMESTAMPDIFF(DAY,'2022-04-23 11:20:00', '2022-04-25 11:20:00'); -- 相差:1星期 SELECT TIMESTAMPDIFF(WEEK,'2022-04-23 11:20:00', '2022-04-30 11:20:00'); -- 相差:1月 SELECT TIMESTAMPDIFF(MONTH,'2022-04-23 11:20:00', '2022-05-30 11:20:00'); -- 相差:1季度 SELECT TIMESTAMPDIFF(QUARTER,'2022-04-23 11:20:00', '2022-07-23 11:20:00'); -- 相差:1年 SELECT TIMESTAMPDIFF(YEAR,'2022-04-23 11:20:00', '2023-04-23 11:20:00');
TIMESTAMPDIFF函數允許其搭配使用的參數datetime_expr1和datetime_expr2具有混合類型
案例
datetime_expr1是DATE類型值,datetime_expr2是DATETIME類型值,TIMESTAMPDIFF函數會將datetime_expr1自動轉換成DATETIME類型值(即在日期后面加上時間“00:00:00”)
-- 12 SELECT TIMESTAMPDIFF(HOUR,'2022-04-27','2022-04-27 12:00:00'); -- 12 SELECT TIMESTAMPDIFF(HOUR,'2022-04-27 00:00:00','2022-04-27 12:00:00');上述兩行代碼等價,返回的都是相同的結果
TIMESTAMPDIFF函數可以結合日期函數進行搭配使用
-- 可以結合日期函數進行搭配使用 SELECT TIMESTAMPDIFF(SECOND,'2022-04-23', CURRENT_DATE()); SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 15:15:00',NOW()); SELECT TIMESTAMPDIFF(SECOND,'2022-04-23 15:15:00',CURRENT_TIMESTAMP()); -- 上述日期函數補充說明 -- CURRENT_DATE()用于返回當前時間 -- 示例結果:2022-04-27 SELECT CURRENT_DATE(); -- NOW()用于返回當前日期和時間 -- 示例結果:2022-04-27 11:27:28 SELECT NOW(); -- CURRENT_TIMESTAMP()用于返回當前日期和時間 -- 示例結果:2022-04-27 11:30:25 SELECT CURRENT_TIMESTAMP();
導入數據
DROP TABLE IF EXISTS Student; CREATE TABLE Student ( SId VARCHAR (10), Sname VARCHAR (10), Sage datetime, Ssex VARCHAR (10) ) ENGINE = InnoDB DEFAULT CHARSET = utf8; INSERT INTO Student(SId,Sname,Sage,Ssex) VALUES('01' , '趙雷' , '1990-01-01' , '男') ,('02' , '錢電' , '1990-12-21' , '男') ,('03' , '孫風' , '1990-05-20' , '男') ,('04' , '李云' , '1990-08-06' , '男') ,('05' , '周梅' , '1991-12-01' , '女') ,('06' , '吳蘭' , '1992-03-01' , '女') ,('07' , '鄭竹' , '1989-07-01' , '女') ,('08' , '張三' , '2017-12-20' , '女') ,('09' , '李四' , '2017-12-25' , '女') ,('11' , '李四' , '2017-12-30' , '女') ,('12' , '孫七' , '2018-01-01' , '女');
Student表
問題:按照出生日期來算學生年齡,其中當前月日<出生年月的月日,則年齡減一
解題思路
使用NOW()、TIMESTAMPDIFF()函數計算年齡
SELECT *, TIMESTAMPDIFF(YEAR,Sage,NOW())AS age FROM Student;
結果展示:
感謝各位的閱讀,以上就是“Mysql中TIMESTAMPDIFF函數的語法是什么”的內容了,經過本文的學習后,相信大家對Mysql中TIMESTAMPDIFF函數的語法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。