【问题标题】: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))
    

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多