MYSQL 中的 TIMESTAMPDIFF()函数
时间戳差异():
MySQL 中的此函数用于在从另一个 DateTime 表达式中减去一个值后返回一个值。
句法 :
TIMESTAMPDIFF(unit,expr1,expr2)
参数 :
它将接受三个参数。
- 单元 -
它表示结果的单位。它可以是以下之一。
微秒、秒、分钟、小时、天、周、月、季度、年 - expr1 –
第一个日期或日期时间表达式。 - expr2 –
第二个日期或日期时间表达式。
回报:
它在减法后返回 DateTime 表达式。
示例 1:
获取两个指定时间值之间的差异,其中时间以 YYYY-MM-DD HH-MM-SS 格式指定。这里 expr2 大于 expr1,所以返回值为正。
SELECT TIMESTAMPDIFF(SECOND, '2010-01-01 10:10:20', '2010-01-01 10:45:59') AS SECONDDIFFERENCE;
输出 :SECONDDIFFERENCE 2139
示例 2:
获取两个指定时间值之间的差异,其中时间以 YYYY-MM-DD HH-MM-SS 格式指定。这里 expr2 小于 expr1,因此返回值为负。
SELECT TIMESTAMPDIFF(SECOND, '2010-01-01 10:10:20', '2010-01-01 09:45:59') AS SECONDDIFFERENCE;
输出:SECONDDIFFERENCE -1461
示例 3:
以YYYY-MM-DD格式指定日期时,获取月份中两个指定日期值之间的差异。
SELECT TIMESTAMPDIFF(MONTH, '2019-08-01', '2020-11-01') AS MONTHDIFFERENCE;
输出:MONTHDIFFERENCE 15
示例 4:
使用 TIMESTAMPDIFF函数计算员工的总工作经验。
创建员工表 -
CREATE TABLE Employee(
id INT AUTO_INCREMENT PRIMARY KEY,
Full_Name VARCHAR(50) NOT NULL,
Joining_Date DATE NOT NULL
);
将值插入表中 -
INSERT INTO Employee(Full_Name , Joining_Date )
VALUES('Riya Jana', '2000-01-01'),
('Sayan Ghosh', '2005-09-26'),
('Rinki Sharma', '2014-08-12'),
('Aniket Singh', '2019-11-05');
现在,我们将使用 TIMESTAMPDIFF 来计算每个员工在这一年的工作经验。
SELECT
id,
Full_Name,
Joining_Date ,
TIMESTAMPDIFF(YEAR, Joining_Date,'2020-11-26') AS WorkExperience
FROM
Employee ;
输出 :ID FULL_NAME JOINING_DATE WORKEXPERIENCE 1 Riya Jana 2000-01-01 20 2 Sayan Ghosh 2005-09-26 15 3 Rinki Sharma 2014-08-12 6 4 Aniket Singh 2019-11-05 1