2017-05-18 25 views
0

我試圖在訪問Oracle數據庫的SQL中創建大量存儲過程。在SQL中轉換Oracle日期(存儲爲數字)OPENQUERY

Oracle中的所有日期都存儲爲10位數字,這會造成一些混淆。

我設計了一些動態SQL,它允許我們運行OPENQUERY來選擇參數,但是我想要做的就是使用參數來指定日期。

由於我們無法在服務器上創建視圖,因此如果任何人有某種他們認爲可能會很出色的東西,這證明非常困難。

例子:

Oracle 10 : 1483527061 
SQL Date : 2017/01/04 10:51:01 000 

請讓我知道如果你需要任何更多的信息。

+0

「我想在SQL中創建一些存儲過程」......你的意思是在SQL Server中?如果是這樣,請更新您的問題和標記以引用SQL Server,而不僅僅是SQL(我們其餘的人認爲是語言!) – Boneist

回答

0

Oracle中的日期/時間看起來像是Unix格式。如果是這樣,你可以這樣做:

select date '1970-01-01' + datecol/(60*24*24) 

這會將它轉換爲Oracle中的日期。

0

甲骨文設置

CREATE TABLE your_table (datecol) AS 
    SELECT 1483527061 FROM DUAL; 

查詢

SELECT datecol, 
     DATE '1970-01-01' + NUMTODSINTERVAL(datecol, 'SECOND') AS datetime 
FROM your_table 

輸出

DATECOL DATETIME 
---------- ------------------- 
1483527061 2017-01-04 10:51:01 

(I如果你需要處理閏秒,那麼你可以create a package to handle this。)