错误:COALESCE类型没有时区的时间戳和整数无法匹配(Postgresql)
发布时间:2020-12-13 15:54:41 所属栏目:百科 来源:网络整理
导读:##问题## 我从这个脚本得到错误(Postgresql 9.3.2) (在MS SQL Server中没问题) SELECT CASE COALESCE(my_date_field,0) WHEN 0 THEN 0 ELSE 1 END AS statusFROM my_table 错误:COALESCE类型没有时区的时间戳和整数无法匹配 第2行:CASE COALESCE(my_date_f
##问题##
我从这个脚本得到错误(Postgresql 9.3.2) SELECT CASE COALESCE(my_date_field,0) WHEN 0 THEN 0 ELSE 1 END AS status FROM my_table 错误:COALESCE类型没有时区的时间戳和整数无法匹配 ## 解决了 ## SELECT CASE WHEN my_date_field IS NULL THEN 0 ELSE 1 END AS status FROM my_table COALESCE几乎接受任意数量的参数,但它们应该是相同的数据类型. 解决方法
零不是有效日期.令人惊讶的是它在MS SQL中有效.您需要使用合理的日期,或接受NULL.
CASE COALESCE(my_date_field,DATE '0001-01-01') 查询总的来说有点奇怪.这不是一种令人难以置信的冗长而复杂的写入IS NULL的方式吗? SELECT my_date_field IS NULL AS status FROM my_table 如果,根据评论,您想要0或1,请使用: SELECT CASE WHEN my_date_field IS NULL THEN 1 ELSE 0 END AS status FROM my_table (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |