問題
在執行以下sql時報錯:
select COALESCE(null,null,now(),'');
報錯如下:
SQL Error [22007]: ERROR: invalid input syntax for type timestamp with time zone: ""
Position: 33
org.postgresql.util.PSQLException: ERROR: invalid input syntax for type timestamp with time zone: ""
Position: 33
解決方法
由於coalesce()要求輸入參數是null或字符串,而now()返回的結果是帶有時區的時間戳,所以就會報錯;需要把時間戳轉換成字符串才可以,如下所示:
select COALESCE(null,null,now()||'','');
select COALESCE(null,null,now()::varchar,'');
