【问题标题】:Teradata handling single digit month and day problemTeradata 处理个位数月份和日期问题
【发布时间】:2021-01-18 15:28:33
【问题描述】:
我有以下值来自一个平面文件,其中可能包含一位数的月份和日期字段:
9/14/2020 07:20:18.630000
7/7/2020 16:24:57.700000
10/24/2019 03:40:52.380000
11/9/2020 20:21:32.420000
现在我需要将其加载到以 TIMESTAMP(6) 作为数据类型的列中。
有人可以帮忙吗?我正在使用 TD SQL Assistant 版本 16。
【问题讨论】:
标签:
sql
teradata
teradata-sql-assistant
teradatasql
【解决方案1】:
SQL 助手不是加载实用程序,例如TPT 完全支持像这样处理输入。
您的另一篇文章显示您已经使用正则表达式来添加缺失的零,并且您应用了正确的格式。这表明您的输入中有错误的数据。您可能会尝试在输入文件中发现错误(检查已加载的行数并检查以下行)。
或者您应用不会失败的 TRYCAST,但会为错误日期返回 NULL。但是哎呀,它不支持 FORMAT,因此您必须先将 MDY 重新排列为 YMD:
trycast(RegExp_Replace(RegExp_Replace(x,'\b([0-9])\b', '0\1'), '(..).(..).(....)(.*)','\3-\1-\2\4') as timestamp(6))