gpt4 book ai didi

postgresql - 从 PostgreSQL 中的不同格式中提取日期

转载 作者:行者123 更新时间:2023-11-29 12:48:43 26 4
gpt4 key购买 nike

我正在尝试更改数据类型的类型(在 PostgreSQL 中从 VARCHARDATE)。

通常下面的代码可以工作,但如您所见,cc_active_date 有两种日期类型。有没有办法在这种情况下模拟 try catch,以便如果转换 DD/MM/YYYY 失败,则需要 YYYY-MM-DD hh:mm:ss

alter table credit_card.hsbc alter column cc_active_date type date
using to_date(cc_active_date, 'DD/MM/YYYY')

enter image description here

最佳答案

DATE 在识别日期格式方面非常灵活,它已经掌握了您的格式。使用 SET datestyle 你可以控制它,这样你就不需要区分大小写了:

SET datestyle TO ISO, DMY;
ALTER TABLE credit_card.hsbc ALTER COLUMN cc_active_date type DATE
USING cc_active_date::DATE;

不支持的格式的替代方法是 if 条件:

ALTER TABLE credit_card.hsbc ALTER COLUMN cc_active_date type DATE
USING TO_DATE(cc_active_date, CASE WHEN cc_active_date ~ '^\d{2}/\d{2}/\d{4}$' THEN
'DD/MM/YYYY' ELSE 'YYYY-MM-DD hh:mm:ss' END);

但如果更简单的变体不起作用,我只会使用这样的东西。

关于postgresql - 从 PostgreSQL 中的不同格式中提取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59025155/

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