Teradata SQL:Teradata的本机日期格式是什么? (哪种查询性能最佳?)

时间:2019-06-20 20:25:01

标签: sql teradata

所以我是一名数据分析师,并且始终在我的数据提取中处理各种日期范围(我猜不是)。

我通常将日期作为整数传递给Teradata,其中6-Jun-2019将传递为1190606。否则,我们的Teradata db支持将日期作为字符串传递为“ 2019-06-06”。

最近,我们的一位管理员声称将日期作为整数传递会降低性能。所以我想知道,将日期传递给Teradata的最有效方法是什么?哪种方法可以确保最佳查询性能?

谢谢。

1 个答案:

答案 0 :(得分:3)

1190606是Teradata DATE的内部存储格式,使用以下格式计算

(year - 1900) * 10000 + (month * 100) + day

当然使用它不会降低性能,但是除非您知道公式,否则它看起来不是正确的日期。尝试写1899-03-31:-)

不要使用'2019-06-06',它只是一个字符串,将根据目标列的FORMAT自动设置为日期。因此,当更改该格式时,它可能会失败。

使用仅支持YYYY-MM-DD格式的标准SQL DATE文字,建议只有一种写DATE的方法:

DATE '2019-06-06'

类似于TIME '12:34:56.12'TIMESTAMP '2019-06-06 12:34:56.12'