问题
在执行以下sql时报错:
1 | select COALESCE(null,null,now(),''); |
---|
报错如下:
1 2 3 4 | 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()
返回的结果是带有时区的时间戳,所以就会报错;需要把时间戳转换成字符串才可以,如下所示:
1 2 3 | select COALESCE(null,null,now()||'',''); select COALESCE(null,null,now()::varchar,''); |
---|
警告
本文最后更新于 April 25, 2019,文中内容可能已过时,请谨慎使用。