Teradata处理个位数的月和日问题

问题描述

我有一个来自平面文件的以下值,该文件可能包含个位数的月和日字段:

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 Assistant不是加载实用程序,例如TPT完全支持处理此类输入。

您的其他文章显示您已经使用RegEx添加缺失的零,并且应用了正确的格式。这表明您输入的数据错误。您可能会尝试在输入文件中发现错误(检查已加载多少行并检查以下几行)。

或者您应用TRYCAST,它不会失败,但是对于错误的日期将返回NULL。但是,不支持FORMAT,因此您必须先将MDY重新排列为YMD:

trycast(RegExp_Replace(RegExp_Replace(x,'\b([0-9])\b','0\1'),'(..).(..).(....)(.*)','\3-\1-\2\4') as timestamp(6))