簡體   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