繁体   English   中英

Oracle SQL中的日期和时间差异

[英]Date and Time Difference in Oracle SQL

在Oracle SQL我已经合并4列(列名前: a_da_td_dd_t )分为2列(名前: a_d_td_d_t ),它们各自的格式: YYYY-MMM-DD HH24:MI 我正在尝试查找a_d_t (开始时间)和d_d_t (结束时间)之间的每次观察经过了多少时间(天和小时)。

我已经尝试过d_d_t - a_d_tto_date(d_d_t)-to_date(a_d_t) ,但是我为每个返回了以下内容: invalid identifier


作为参考,我用于合并各列的代码(有效)是:

to_char(to_date
( to_char (a_d,'YYYYMMDD')
    || a_t,
 'YYYYMMDDHH24MI'
   ), 'YYYY-MM-DD HH24:MI') 

您的输入是字符串,因此您必须将它们转换为日期。 但是仅仅说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,您将在数小时内得到它。

考虑到您输入的d_d_t,格式为yyyy-mm-dd hh:mi的a_dare字符串和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为您的表名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM