SQL 计算两个日期之间相差的秒数、分钟数和小时数 您所在的位置:网站首页 sql计算时间差的函数 SQL 计算两个日期之间相差的秒数、分钟数和小时数

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

2023-11-16 19:28| 来源: 网络整理| 查看: 265

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

MySQL 和 SQL 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_HD 和 ALLEN_HD 之间相差的天数分别乘以 24(一天的小时数),1440(一天的分钟数)和 86400(一天的秒数),就得到最终结果了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有