我正在尝试从具有日期范围的表中选择数据 它从JAVA以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当我尝试使其成为普遍存在时
有人可以帮忙吗?
答案 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')