2015-12-18 33 views
-1

我正在將這個查詢寫入PLM SQL數據庫的ALM查詢生成器中。 我有一個時間格式爲"YYYY-MM-DD HH:MM:SS"的字段。我想從PL/SQL中的DBStamp數據類型中分離數據和時間

我基本上要分開DateTime和使用LeadLag函數來計算它後面的行之間TIME差異。

或者我們可以做到這一點沒有分開的日期和時間?

+0

有沒有這樣的東西作爲一個「PL/SQL數據庫」 。這是一個Oracle數據庫。爲什麼你需要一個存儲過程呢? –

+2

該字段是否有'DATE'類型或'CHAR'類型,恰好具有格式'YYYY-MM-DD HH24:MI:SS'?希望前者。 – MT0

+0

@ MT0 - 數據類型爲DBTimeStamp – amann

回答

0

的Oracle 11g設置

CREATE TABLE table_name (time) AS 
SELECT TIMESTAMP '2015-12-20 00:00:00.0000' FROM DUAL UNION ALL 
SELECT TIMESTAMP '2015-12-21 00:00:00.0000' FROM DUAL UNION ALL 
SELECT TIMESTAMP '2015-12-21 03:20:00.0000' FROM DUAL UNION ALL 
SELECT TIMESTAMP '2015-12-21 03:20:01.2300' FROM DUAL; 

查詢1

SELECT time, 
     LAG(time) OVER (ORDER BY time) AS prev_time, 
     time - LAG(time) OVER (ORDER BY time) AS difference 
FROM table_name; 

結果

TIME    PREV_TIME   DIFFERENCE 
------------------ ------------------ ----------- 
20-DEC-15 00.00.00         
21-DEC-15 00.00.00 20-DEC-15 00.00.00 1 0:0:0.0 
21-DEC-15 03.20.00 21-DEC-15 00.00.00 0 3:20:0.0 
21-DEC-15 03.20.01 21-DEC-15 03.20.00 0 0:0:1.23 
相關問題