PostgreSQL中如何用UPDATE语句转换VARCHAR类型日期格式?
可以通过PostgreSQL的UPDATE语句实现该日期格式转换
先验证转换结果(推荐优先执行)
先通过SELECT语句确认转换逻辑是否符合预期,避免误更新数据:
SELECT id, "time", TO_CHAR(TO_TIMESTAMP("time", 'DD.MM.YYYY HH24:MI'), 'YYYY-M-DD HH24:MI') AS converted_time FROM 你的表名;
执行UPDATE完成格式转换
确认转换结果无误后,运行以下UPDATE语句:
UPDATE 你的表名 SET "time" = TO_CHAR(TO_TIMESTAMP("time", 'DD.MM.YYYY HH24:MI'), 'YYYY-M-DD HH24:MI');
关键函数说明
TO_TIMESTAMP("time", 'DD.MM.YYYY HH24:MI'):把原VARCHAR类型的字符串按日.月.年 24小时:分钟的格式解析为PostgreSQL的TIMESTAMP类型。TO_CHAR(..., 'YYYY-M-DD HH24:MI'):将TIMESTAMP类型的值格式化为年-月-日 24小时:分钟的字符串,其中月份为单个数字时不带前导零(如示例中的9而非09)。
注意事项
time是PostgreSQL的关键字,所以列名必须用双引号"time"包裹,否则会触发语法错误。
内容的提问来源于stack exchange,提问作者Pavel
相关产品推荐
相关产品推荐

