Teradata 将整数转换为时间戳

Teradata Convert Integer to a timestamp

我正在尝试 select 来自具有日期范围的 table 的数据 它有点混乱,因为它是从 JAVA 作为 20160101 (YYYYMMDD)

形式的整数传递的

所以基本上我希望能够运行这样的查询(顺便说一句,这是在查询中工作的时间戳类型)

SELECT * FROM TABLE_A as t
WHERE t_timestamp >='2016-10-01 00:00:00'

我环顾了 google 和 SO,想出了这样的东西

SELECT CAST(20161001 AS DATE FORMAT 'YYYY-MM-DD') || ' 00:00:00'

这是为了尝试将整数转换为时间戳,该时间戳将被接受table 作为日期范围。这似乎不起作用。没有错误,只是当我静态添加时间戳时存在的结果与当我尝试使其通用时不存在的结果

有人可以帮忙吗?

如果您希望查询下方的字符值应该有效 sel (CAST('20161001' AS DATE FORMAT 'yyyymmdd')(格式'yyyy-mm-dd')(char(10)))|| '00:00:00'

下面的查询将值转换为 timestamp(0)

sel cast((CAST('20161001' AS DATE FORMAT 'yyyymmdd')(format 'yyyy-mm-dd')(char(10)))|| ' 00:00:00' as timestamp(0))

你看过SELECT CAST(20161001 AS DATE FORMAT 'YYYY-MM-DD')的结果了吗?它 returns '3916-10-01' 你可能没有像 tghat 这样的数据 :-)

对字符串应用类型转换,然后转换为日期:

WHERE t_timestamp >= Cast(Trim(20161001) AS DATE Format 'YYYYMMDD')