greenplum中to_date函數注意點

今天協助排查異常數據,發現是以下相似代碼產生的:html

to_date(col_name,'yyyymmdd'),其中col_name是date類型。sql

這個代碼運行後,結果是:2018-11-16的date類型數據轉換後變成了2017-11-01。oracle

查閱官方文檔:函數

https://www.postgresql.org/docs/8.3/functions-formatting.htmlpost

to_date函數的參數爲字符串類型,因此上面的代碼是等價於下面的代碼:postgresql

select TO_DATE('2018-11-16' ,'YYYYMMDD')orm

執行後結果與預想的一致:轉換後爲2017-11-01。htm

將一樣的代碼轉換成oracle的語法:select TO_DATE('2018-11-16' ,'YYYYMMDD') from dual;blog

執行結果是:直接提示格式錯誤。文檔

 

緣由分析:從結果看,是to_date函數邏輯就是這樣子的,沒有完善的容錯或止錯處理,具體狀況須要查看源碼。

解決方法:對於類型轉換的函數,要查閱資料清楚函數的使用方法,正確的使用函數。

相關文章
相關標籤/搜索