Oracle SQL中的日期和时间差异

时间:2016-07-28 19:40:30

标签: sql oracle datetime date-arithmetic

在Oracle SQL中,我将4列(列名称:getAddressFor(:Point)a_da_td_d)合并为2列(名称之前:{ {1}}和d_t)各自的格式为:a_d_t。我试图在d_d_t(开始时间)和YYYY-MMM-DD HH24:MI(结束时间)之间找出每次观察经过的时间(天和小时)。

我已尝试a_d_td_d_t,但我为每个人取回了以下内容:d_d_t - a_d_t

作为参考,我使用(有效)代码来合并列:

to_date(d_d_t)-to_date(a_d_t)

2 个答案:

答案 0 :(得分:0)

您的输入是字符串,因此您必须将它们转换为日期。但是说to_date是不够的,你还必须给出正确的格式模型。

select to_date(d_d_t, 'yyyy-mm-dd hh24:mi') - to_date(a_d_t, 'yyyy-mm-dd hh24:mi') 
from   < ... >

会给你几天的差异。乘以24,您将在数小时内得到它。

答案 1 :(得分:0)

考虑到您的输入d_d_t,a_dare字符串的格式为yyyy-mm-dd hh:mi和nls_date_format与它不同,您可以尝试使用以下查询并查看是否有效。

要查找两个日期之间的持续时间,您必须将日期字符串转换为日期格式。

select col_a, col_b, to_date(col_a,'yyyy-mm-dd hh24:mi:ss')- to_date(col_b,'yyyy-mm-dd hh24:mi:ss')duration
from x_datedur

col_a替换为结束时间,将col_b替换为开始时间,将x_datedur替换为您的表名。