在Oracle SQL中,我将4列(列名称:getAddressFor(:Point)
,a_d
,a_t
,d_d
)合并为2列(名称之前:{ {1}}和d_t
)各自的格式为:a_d_t
。我试图在d_d_t
(开始时间)和YYYY-MMM-DD HH24:MI
(结束时间)之间找出每次观察经过的时间(天和小时)。
我已尝试a_d_t
和d_d_t
,但我为每个人取回了以下内容:d_d_t - a_d_t
。
作为参考,我使用(有效)代码来合并列:
to_date(d_d_t)-to_date(a_d_t)
答案 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
替换为您的表名。