📜  MYSQL 中的 TIMESTAMPDIFF()函数

📅  最后修改于: 2022-05-13 01:55:32.161000             🧑  作者: Mango

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 ;

输出 :

IDFULL_NAMEJOINING_DATEWORKEXPERIENCE
1 Riya Jana 2000-01-0120
2 Sayan Ghosh2005-09-2615
3Rinki Sharma2014-08-126
4 Aniket Singh 2019-11-051