Teradata v17中如何将带AM/PM的VARCHAR转换为24小时制TIMESTAMP
问题解决:VARCHAR转TIMESTAMP报错“Format code appears twice”
你的报错原因很明确:格式字符串里MM重复了——第一个MM用来表示月份,但分钟的格式码应该是MI,不是MM,数据库识别到重复的格式码就会抛出错误。
修正方案1:转成带AM/PM的TIMESTAMP
把分钟的格式码改成MI即可:
SELECT itab.*, TO_TIMESTAMP(Start_Date, 'MM/DD/YYYY HH:MI:SS AM') AS start_TS FROM db.info_table itab
修正方案2:转成24小时制的TIMESTAMP
如果想要直接解析为24小时制的时间戳,把小时格式码换成HH24即可(注意不需要再写AM):
SELECT itab.*, TO_TIMESTAMP(Start_Date, 'MM/DD/YYYY HH24:MI:SS') AS start_TS_24h FROM db.info_table itab
补充说明:你的原始日期字符串里月份、日期是单数字(比如8/3/2022),MM/DD格式码会自动兼容单/双位的数字,不需要额外调整。
内容的提问来源于stack exchange,提问作者Aurora
相关产品推荐
相关产品推荐

