1. 程式人生 > >greenplum中to_date函數註意點

greenplum中to_date函數註意點

postgres .com to_date 就是 name 其中 com 代碼 產生

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

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

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

查閱官方文檔:

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

技術分享圖片

to_date函數的參數為字符串類型,所以上面的代碼是等價於下面的代碼:

select TO_DATE(‘2018-11-16‘ ,‘YYYYMMDD‘)

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

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

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

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

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

greenplum中to_date函數註意點