我在 Teradata 中有一個包含以下 3 列的表格,以及創建可用于過濾表格的日期的內容。
Year Month Days
1 2,016 9 30
2 2,017 2 28
3 2,015 5 31
從上述 3 列創建日期后,“日期”表應如下所示。
Year Month Days Date
1 2,016 9 30 9/30/2016
2 2,017 2 28 2/28/2017
3 2,015 5 31 5/31/2015
我嘗試過 TO_DATE、Cast 的不同變體等,但它出錯了。
uj5u.com熱心網友回復:
假設現有列是 INT/SMALLINT/BYTEINT,您可以利用 Teradata 的“整數日期”表示:
CAST(("year"-1900)*10000 "month"*100 "days" AS DATE) as "date"
uj5u.com熱心網友回復:
您可以將結果視為字串并連接所有列,只需更改年份-
將來最好將資料和時間保存在適當的莊園中,因為您可以從中派生所有列,并且構建日期所需的時間更少
SELECT ('' || Days || '/' || Month || '/' || CAST(oreplace(Year,',','') AS CHAR(4)) )
uj5u.com熱心網友回復:
select cast(cast(year*10000 Month*100 Day as char(10)) as date format'YYYYMMDD')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451455.html
