SQL 计算两个日期之间相差的秒数、分钟数和小时数

SQL 计算两个日期之间相差的秒数、分钟数和小时数,算出两个日期之间相差多少秒。例如,希望知道 ALLEN 和 WARD 的 HIREDATE 之间相差多少秒、多少分钟以及多少小时。

SQL 计算两个日期之间相差的秒数、分钟数和小时数 问题描述

算出两个日期之间相差多少秒。例如,希望知道 ALLEN 和 WARD 的 HIREDATE 之间相差多少秒、多少分钟以及多少小时。

SQL 计算两个日期之间相差的秒数、分钟数和小时数 解决方案

如果我们能算出来两个日期之间相差多少天,那么也就能知道它们相差多少秒、多少分钟和多少小时,只需对不同的时间单位做出相应的换算即可。
DB2
使用 DAYS 函数计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。

 1  select dy*24 hr, dy*24*60 min, dy*24*60*60 sec
 2    from (
 3  select ( days(max(case when ename = 'WARD'
 4                    then hiredate
 5               end)) -
 6           days(max(case when ename = 'ALLEN'
 7                    then hiredate
 8               end))
 9         ) as dy
10    from emp
11         ) x

MySQLSQL Server
使用 DATEDIFF 函数计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。

 1  select datediff(day,allen_hd,ward_hd)*24 hr,
 2         datediff(day,allen_hd,ward_hd)*24*60 min,
 3         datediff(day,allen_hd,ward_hd)*24*60*60 sec
 4    from (
 5  select max(case when ename = 'WARD'
 6                   then hiredate
 7             end) as ward_hd,
 8         max(case when ename = 'ALLEN'
 9                  then hiredate
10             end) as allen_hd
11    from emp
12         ) x

Oracle 和 PostgreSQL
使用减法计算 ALLEN 和 WARD 的 HIREDATE 之间相差多少天,然后进行时间单位换算。

 1  select dy*24 as hr, dy*24*60 as min, dy*24*60*60 as sec
 2    from (
 3  select (max(case when ename = 'WARD'
 4                  then hiredate
 5              end) -
 6          max(case when ename = 'ALLEN'
 7                   then hiredate
 8              end)) as dy
 9     from emp
10          ) x

SQL 计算两个日期之间相差的秒数、分钟数和小时数 扩展知识

在上述所有的解决方案中,内嵌视图 X 都被用来获取 WARD 和 ALLEN 的 HIREDATE,如下所示。

select max(case when ename = 'WARD'
                 then hiredate
           end) as ward_hd,
       max(case when ename = 'ALLEN'
                then hiredate
           end) as allen_hd
  from emp
 
WARD_HD     ALLEN_HD
----------- -----------
22-FEB-1981 20-FEB-1981

WARD_HDALLEN_HD 之间相差的天数分别乘以 24(一天的小时数),1440(一天的分钟数)和 86400(一天的秒数),就得到最终结果了。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

SQL 实例