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

Teradata中字符串转Timestamp(3/6)及毫秒格式解析

Teradata字符串转Timestamp(3/6)及带毫秒格式问题解答

1. 将字符串'20240627181610100000'转换为Timestamp(3/6)

该字符串结构为YYYYMMDDHHMISSFFFFFF(日期+时间+6位毫秒),可通过对应格式的CAST语句直接转换:

  • 转换为Timestamp(6):
SELECT CAST('20240627181610100000' AS TIMESTAMP(6) FORMAT 'YYYYMMDDHHMISSFFFFFF');
  • 转换为Timestamp(3):
    指定3位毫秒格式即可,Teradata会自动截断多余位数:
SELECT CAST('20240627181610100000' AS TIMESTAMP(3) FORMAT 'YYYYMMDDHHMISSFFF');

2. 无分隔符毫秒的Timestamp格式规则

你遇到的转换失败,是因为格式符与字符串结构不匹配:

  • .S(3)格式要求字符串必须包含小数点(如20240627181751.000),但你的毫秒部分与前面的时间是连在一起的,因此不能使用该格式。
  • 对于无分隔符的3位毫秒字符串20240627181751000,需用FFF表示3位毫秒,对应格式为'YYYYMMDDHHMISSFFF',执行语句如下:
SELECT CAST('20240627181751000' AS TIMESTAMP(3) FORMAT 'YYYYMMDDHHMISSFFF');

无需使用子字符串函数即可完成转换。

内容的提问来源于stack exchange,提问作者Hassam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:08:17