Oracle SQL 求两个时间差
一、需求
三个字段分别表示时间,字段 info 格式为:"2019-10-10 05:13" ,字段 mydate 格式为:"2019-10-10",字段 mytime 格式为 :"03:24"。
二、解决
想求这两个时间的差,首先要把 mytime 带上日期,与 mydate 字段拼接,其次将 info 与 拼接后的字段做差。
三、代码实现
Oracle SQL语法中两个时间不能直接做减法,需要使用 to_date() 函数统一时间格式后才能做计算。
(TO_DATE(info, 'yyyy-mm-dd hh24:mi:ss') - TO_DATE((mydate || ' '|| mytime), 'yyyy-mm-dd hh24:mi')) * 24 * 60 AS subtract
代码解释:
1. to_date() 函数使 info 字段变为 'yyyy-mm-dd hh24:mi:ss' 格式;
2. (mydate || ' '|| mytime) 中 || 起到字符串拼接的作用;
3. * 24 转换为小时,再 * 60 转换为分钟 。
以上,问题解决。