gpt4 book ai didi

coalesce - 错误: COALESCE types timestamp without time zone and integer cannot be matched (Postgresql)

转载 作者:行者123 更新时间:2023-12-02 01:21:19 27 4
gpt4 key购买 nike

## 问题##

我从这个脚本中收到错误(Postgresql 9.3.2)
(在 MS SQL Server 中没问题)

SELECT 
CASE COALESCE(my_date_field,0)
WHEN 0 THEN 0
ELSE 1 END
AS status
FROM
my_table

错误:COALESCE 类型没有时区的时间戳和整数无法匹配
第 2 行:CASE COALESCE(my_date_field,0)

## 已解决 ##

SELECT 
CASE WHEN my_date_field IS NULL
THEN 0 ELSE 1 END
AS status
FROM
my_table

COALESCE 接受几乎任意数量的参数,但它们应该是相同的数据类型
我引用自COALESCE Function in TSQL

最佳答案

零不是有效日期。令人惊讶的是它可以在 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

关于coalesce - 错误: COALESCE types timestamp without time zone and integer cannot be matched (Postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21870648/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com