2014-06-20 223 views
-1

我有一個問題。我有一個數據類型爲十進制的字段START_VALUE。我想將十進制轉換爲日期。如何將小數轉換爲日期?

數據類型START_VALUE是START_VALUE的Decimal.The數據是:

START_VALUE |=========| | 240368 | | 198448 | | 197396 | | 126743 |

我要轉換爲DateTime和我想期待是什麼樣的「YYYY-MM-DD 00:00: 00.000'

我不知道該值是Julian日期還是其他值。請幫我找到正確的選擇查詢。 謝謝。

+2

您使用的是哪個數據庫?什麼是列的類型?你對你在問題中發佈的數值期望什麼日期?如果沒有它,它可能是任何東西..例如,你想第一排「1968年3月24日」? –

+0

如果您正在使用mysql,請使用'from_unixtime(START_VALUE)作爲mydate'。 –

+0

我使用SQL服務器數據庫,列的源類型是十進制,我想轉換爲日期。而我期望的價值就像'yyyy-mm-dd 00:00:00.000'。因爲我想從SSIS遷移到datastage。 – cindy

回答

0

您可以使用下面的查詢在SQL Server解析它,如果你使用的是Oracle爲datetime

SELECT CONVERT(DATETIME, SUBSTRING(CAST(START_VALUE 
as varchar(8)),1,2) + '-' + SUBSTRING(CAST(START_VALUE 
as varchar(8)),3,2) + '-' + SUBSTRING(CAST(START_VALUE 
as varchar(8)),5,2),5) AS DateTimeValue 

FROM Table 

那麼你可以使用下面的查詢

SELECT TO_DATE(CAST(START_VALUE AS VARCHAR(8), 'DDMMYY') FROM Table 
+0

如果我在oracle中嘗試,該怎麼辦? – cindy

+0

但結果很奇怪。我有價值'240368',如果我使用該查詢,然後我得到的結果不是我所期望的。 'yyyy-mm-dd 00:00:00.000' – cindy

+0

它適用於SQL Server。你得到什麼結果? –

1

您是否正在尋找此

CREATE FUNCTION Number_To_Date(No_Of_Days NUMBER) 
RETURN DATE IS 
BEGIN 
    RETURN to_date('1899-12-30', 'YYYY-MM-DD') + No_Of_Days; 
END;