首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >双精度类型的postgresql无效输入语法

双精度类型的postgresql无效输入语法
EN

Stack Overflow用户
提问于 2022-02-23 01:13:46
回答 1查看 2.5K关注 0票数 0

我有一张桌子上有几个欧洲君主的出生和死亡,这张桌子没有年龄栏,我必须加上它。还有几个null和'None‘值,在这种情况下,age列应该显示未知。

下面的代码给出了一个invalid input syntax for type double precision错误。

代码语言:javascript
复制
    SELECT CASE
WHEN date_part('year', age(TO_TIMESTAMP(death, 'YYYY-MM-DD'), TO_TIMESTAMP(birth, 'YYYY-MM-DD'))) = 'None' OR death ISNULL
    THEN 'Unknown'
ELSE
    date_part('year', age(TO_TIMESTAMP(death, 'YYYY-MM-DD'), TO_TIMESTAMP(birth, 'YYYY-MM-DD')))
END

作为君主制的年龄

postgresql没有datediff函数。非常感谢。

编辑

生灭列是varchars,格式为0208-10-01T00:53:28+00:53

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-23 03:14:08

解析

使用下列代码

代码语言:javascript
复制
CASE 
   WHEN death IS NULL OR birth IS NULL
      THEN 'Unknown'
      ELSE CAST(EXTRACT(YEAR FROM TO_TIMESTAMP(death, 'YYYY-MM-DD')) - EXTRACT(YEAR FROM TO_TIMESTAMP(birth, 'YYYY-MM-DD')) AS VARCHAR)
END 

‘'null’是一个字符串。我的查询正在执行一个子字符串,而case语句需要具有相同的数据类型,所以我必须将其输入到varchar。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71230264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档