在teradata有什么类似时间戳(9)的东西

时间:2014-11-21 10:35:24

标签: sql teradata

我刚遇到一个需要加载数据的场景:

' 2014-12-24 13:59:10:060606066'

Teradata表中的

数据类型为Timestamp 你可以看到毫秒格式有9位数,有没有办法加载这些数据 或者Teradata根本不支持它。

现在我删除了最后3位数字,使其像“2014-12-24 13:59:10:060606'并加载到数据库中,但我将来可能需要处理它。

1 个答案:

答案 0 :(得分:1)

也许您可以通过在表格中存储三个字段来实现此目的:

  1. Message_Queue_Timestamp TIMESTAMP(6) NOT NULL
  2. Message_Queue_Date DATE NOT NULL
  3. Message_Queue_Seconds_From_Midnight FLOAT NOT NULL
  4. 使用dnoeth的建议使用to_timestamp()转换输入以在表中保留DBA友好的时间戳。这是Message_Queue_Timestamp

    然后将传入的时间戳分为两个字段:Message_Queue_DateMessage_Queue_Seconds_From_Midnight。我最初建议将后者存储为DECIMAL(14,9),但后来实现为FLOAT格式化/将其转换为Teradata中的TIME更容易。这两个字段允许您保留数据库摄取的时间戳的精度,而不必将数据存储为字符串。

    在ETL处理中,时间戳到秒的转换应该相当直接。希望这可以帮助。