如何解决我可以在 PostgreSQL 中的一种常见数据类型日期下有一列包含两种不同的数据类型日期和文本吗?
我是 PostgreSQL 的新手。在下表中,end_date
是包含 9999-01-01
作为值的 date 数据类型。我将 9999-01-01
替换为“Never Ending”,因为日期看起来不适合表示目的。我想将我的 end_time 列从 text 重新转换为 date 数据类型,而不会丢失“Never Ending”文本值。
我有以下数据:
event_id(int) event_name(varchar) start_date(date) end_date(varchar)
1 abc 2020-07-28 2020-07-29
2 efg 2020-08-01 2020-09-01
3 xyz 2021-06-01 Never Ending
欲望输出:
event_id(int) event_name(varchar) start_date(date) end_date(date)
1 abc 2020-07-28 2020-07-29
2 efg 2020-08-01 2020-09-01
3 xyz 2021-06-01 Never Ending
将数据类型-->日期转换为文本的查询:
select event_id,event_name,start_date,case
when end_date = '9999-01-01' then 'Never Ending'
else CAST (end_date AS text)
end as end_date
from event
解决方法
我会使用空值而不是将所有内容都转换为文本,因此:
select
event_id,event_name,start_date,case when end_date = '9999-01-01' then null else end_date end as end_date
from event
此外,您不需要所有这些括号:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。