溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Mysql中TIMESTAMPDIFF函數(shù)的語法是什么

發(fā)布時(shí)間:2022-09-19 14:18:39 來源:億速云 閱讀:154 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Mysql中TIMESTAMPDIFF函數(shù)的語法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Mysql中TIMESTAMPDIFF函數(shù)的語法是什么”吧!

TIMESTAMPDIFF函數(shù)用于計(jì)算兩個(gè)日期的時(shí)間差

語法結(jié)構(gòu)

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

參數(shù)說明 

unit: 日期比較返回的時(shí)間差單位,常用可選值如下:

SECOND:秒

MINUTE:分鐘

HOUR:小時(shí)

DAY:天

WEEK:星期

MONTH:月

QUARTER:季度

YEAR:年

datetime_expr1: 要比較的日期1

datetime_expr2: 要比較的日期2

TIMESTAMPDIFF函數(shù)返回datetime_expr2 - datetime_expr1的結(jié)果,其中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小時(shí)
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函數(shù)允許其搭配使用的參數(shù)datetime_expr1和datetime_expr2具有混合類型

案例

datetime_expr1是DATE類型值,datetime_expr2是DATETIME類型值,TIMESTAMPDIFF函數(shù)會(huì)將datetime_expr1自動(dòng)轉(zhuǎn)換成DATETIME類型值(即在日期后面加上時(shí)間“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');

上述兩行代碼等價(jià),返回的都是相同的結(jié)果

TIMESTAMPDIFF函數(shù)可以結(jié)合日期函數(shù)進(jìn)行搭配使用

-- 可以結(jié)合日期函數(shù)進(jìn)行搭配使用
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());
 
-- 上述日期函數(shù)補(bǔ)充說明
-- CURRENT_DATE()用于返回當(dāng)前時(shí)間
-- 示例結(jié)果:2022-04-27
SELECT CURRENT_DATE();
 
-- NOW()用于返回當(dāng)前日期和時(shí)間
-- 示例結(jié)果:2022-04-27 11:27:28
SELECT NOW();
 
-- CURRENT_TIMESTAMP()用于返回當(dāng)前日期和時(shí)間
-- 示例結(jié)果:2022-04-27 11:30:25
SELECT CURRENT_TIMESTAMP();

練習(xí)案例

導(dǎo)入數(shù)據(jù)

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' , '孫風(fēng)' , '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表 

Mysql中TIMESTAMPDIFF函數(shù)的語法是什么

問題:按照出生日期來算學(xué)生年齡,其中當(dāng)前月日<出生年月的月日,則年齡減一

解題思路

使用NOW()、TIMESTAMPDIFF()函數(shù)計(jì)算年齡

SELECT *, TIMESTAMPDIFF(YEAR,Sage,NOW())AS age
FROM Student;

結(jié)果展示:

Mysql中TIMESTAMPDIFF函數(shù)的語法是什么

感謝各位的閱讀,以上就是“Mysql中TIMESTAMPDIFF函數(shù)的語法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Mysql中TIMESTAMPDIFF函數(shù)的語法是什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI