postgresql Postgres -将此字符串更改为日期

kmbjn2e3  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(1)|浏览(200)

有人知道如何将字符串"22AB1113"更改为日期吗?理想情况下,我希望该字符串的输出为"2022 - 11 - 13"。
另一个例子:对于字符串'22AB0204',我实际上希望它有'2023 - 02 - 04'作为输出,而不是'2022 - 02 - 04'。字符串适用于2023年,而不是2022年。
非常感谢大家的帮助!

with fq as (
select 
distinct(replace(bc.sale_name,'22AB','')) as "Date",
sum(bc.num_beds) as "Number of Beds"
from bed_count bc
where (sale_name ilike '%22AB%')
group by 1
order by "Date"
)
select
case
    when fq."Date"::int >= 500 then concat('2022-',fq."Date"::int)
    when fq."Date" NOT ILIKE '0%' then concat('2022-',fq."Date")
    else concat('2023-',fq."Date")
    end as "Date",
fq."Number of Beds"
from fq
ulydmbyx

ulydmbyx1#

使用formatcase应简单。

with fq as ( ... )
select format(
   '%s-%s-%s',
   case when "Date" > '0500' then '2022' else '2023' end, 
   substr("Date", 1, 2), 
   substr("Date", 3, 2)
 ) as "Date",
 "Number of Beds"
from fq;

您可能还希望将日期文本转换为正确的date

相关问题