Teradata将整数转换为时间戳

时间:2016-11-15 14:26:27

标签: date teradata

我正在尝试从具有日期范围的表中选择数据 它从JA​​VA以20160101(YYYYMMDD)形式的整数传递时有点乱:

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

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

我已经浏览了谷歌和SO,并提出了类似的东西

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

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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

如果您希望查询下面的字符值应该有效     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))

答案 1 :(得分:1)

您是否看过SELECT CAST(20161001 AS DATE FORMAT 'YYYY-MM-DD')的结果?它返回'3916-10-01',你可能没有像tghat这样的数据: - )

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

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