我有一個Excel日誌格式將日期加載到不是一致格式的表中,因此當我們將日期複製到另一個表時將其轉換爲時間戳更具挑戰性。Excel日期格式到DB2中的時間戳SQL
實施例的日期:
- 2015年5月1日
- 2015年5月15日
- 2015年12月1日
- 2015年12月15日
我需要將其轉換爲時間戳格式。首先,我只是試圖解析並將日期連接成像時間戳格式化的字符類型。
的時間戳格式必須是:YYYY-MM-DD HH24:MM:SS
我們的DB2實例是很舊,不接受以下功能: INSTR
,LOCATE_IN_STRING
但是,它不會接受:LOCATE
我因爲我在參數中指定了實際的數字,而不是使用可以處理不同日期格式的函數,所以代碼爲4種日期格式中的2種工作。修改查詢,在顯示的不良表之後,我的結果是:
OLD日期 - 新的日期
2015年4月3日 - 2015年4月3日/ 00:00:00
二零一五年三月三十零日 - 手繪POP練習00:00:00
12/31/2015 - 2015-01-/3 00:00:00
2015年12月3日 - - 2015-01-/3 00:00:00
上表中的「 - 」表示差異表中的nt列。
我當前的代碼是:
SELECT
STARTDATE
, RIGHT(LTRIM(RTRIM(STARTDATE)), 4) --YEAR
|| '-'
|| RIGHT('00' || SUBSTR(STARTDATE, 1, LOCATE(STARTDATE, '/', 1)+1), 2) --MONTH
|| '-'
|| LEFT(SUBSTR(STARTDATE, 3, LOCATE(STARTDATE, '/', 1)+2) || '00', 2) --DAY
|| ' 00:00:00' AS STARTDATE
FROM SCHEMA1.TABLE1
誰能幫助?
- DB2/NT SQL08016
- IBM數據服務器驅動程序JDBC和SQLJ 4.13.127
我得到一個錯誤:在filetmod中,以字符串「'MM/DD/YYYY'」開頭的用戶指定格式「DATEFORMAT」無效。 我使用的代碼是使用IMPORT語法使用「METHOD P」。 – Coogie7
顯示您使用的確切命令。你在格式中使用了單引號嗎?此外,您可能想將其更改爲'「M/D/YYYY」'來解釋一位數值。 – mustaccio
我將它改爲雙引號,但沒有出現錯誤,但日期的格式是MM/DD/YYY和M/DD/YYYY和M/D/YYYY的混合格式。這是由於包含在日期中的前導零。導入到臨時表中的數據將被複制到數據類型爲TIMESTAMP的字段中。有沒有辦法直接將其更改爲Timestamp? – Coogie7