You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MM/DD/YYYY HH:MI格式时间转换为Teradata Timestamp

Teradata MM/DD/YYYY HH:MI格式字符串转Timestamp报错解决

报错原因

原SQL的格式匹配规则和输入字符串不兼容:

  • 小写格式符mm、hh强制要求匹配两位带前导零的月份、小时值(比如4月必须写为04,0点必须写为00),但传入的字符串中单数字的月、小时没有补前导零,无法通过格式校验。
  • 其余格式逻辑(日期分隔符、日期时间间隔、分钟匹配)的写法没有问题。

正确实现方案

方案1:调整CAST格式符适配无前置补零的数值

将强制固定两位的小写格式符替换为支持1-2位可变长度的大写格式符即可,SQL如下:

SELECT CAST('4/13/2022 0:00' AS TIMESTAMP(0) FORMAT 'MM/DD/YYYYBHH:MI')

用到的格式符规则:

  • MM:匹配1-12的月份,同时支持1位(如4)、2位(如04、12)写法
  • DD:匹配1-31的日期,同时支持1位、2位写法
  • B:匹配日期和时间之间的单个空格
  • HH:匹配0-23的24小时制小时,同时支持1位、2位写法
  • MI:匹配00-59的分钟,固定两位长度,和输入规则匹配

方案2:使用TO_TIMESTAMP函数转换

可以直接用时间转换函数,写法可读性更强:

SELECT TO_TIMESTAMP('4/13/2022 0:00', 'MM/DD/YYYY HH24:MI')

其中HH24代表按24小时制解析小时值,同样兼容不带前导零的数字写法。

注意:如果字段中同时存在带前导零、不带前导零的月/日/小时值,上述两种方案都可以自动兼容,不需要额外做字符串替换处理。如果你的时间是12小时制带AM/PM标识,需要在格式末尾追加AM格式符做匹配。

内容的提问来源于stack exchange,提问作者Yasir Ahmed Pirkani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 18:36:20