gpt4 book ai didi

postgresql - 列 "expired_date"是日期类型,但表达式是文本类型

转载 作者:行者123 更新时间:2023-12-05 04:10:56 25 4
gpt4 key购买 nike

我想用多个条件更新多行。

这是我选择查询来测试结果。

select name, register_date, expired_date, to_char(register_date + interval '1 year' - interval '1 day', 'YYYY-MM-DD') from tb_agent where agent_id = agent_id and agent_id in (46,47,62)

它可以像我预期的那样显示结果,

但是当我使用这段代码进行多次更新时

update tb_agent set expired_date = (select to_char(register_date + interval '1 year' - interval '1 day', 'YYYY-MM-DD') from tb_agent where agent_id = agent_id) where agent_id in (46,47,62)

我明白了

column "expired_date" is of type date but expression is of type text

register_date 是日期时间列,expired_date 是varchar

我的代码有问题吗?

提前致谢。

最佳答案

to_char 将日期转换为格式化字符串。您可以将其转换为日期。

但更新语句也可以简化为以下内容:

update tb_agent 
set expired_date = (register_date + interval '1 year' - interval '1 day')::date
where agent_id in (46,47,62)

关于postgresql - 列 "expired_date"是日期类型,但表达式是文本类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624434/

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