Redshift-来自TO_TIMESTAMP函数的奇怪行为

时间:2019-07-29 14:39:57

标签: date timestamp amazon-redshift

我正在尝试根据分开的日期和时间字段创建一个时间戳。日期字段为“日期”类型,而时间字段为“ varchar”。该表有超过6万条记录。日期采用YYYY-MM-DD格式,即2017-07-25。时间采用HH:MIpm格式,即4:25 pm。

我运行以下查询尝试创建时间戳:

select *, 
       to_timestamp(TO_CHAR("date", 'YYYY-MM-DD')||' '||(case when "time"='' then '11:59pm' else "time" end), 'YYYY-MM-DD HH:MIpm') as REQUIRED_TIMESTAMP 
from TABLE;

但是,它仅返回1023条记录。这就是使事情变得更奇怪的原因:

i。在随后的运行中,返回的记录并不总是相同的。但是,总是返回1023条记录。在一次运行中,前几个ID是43、55、63、69等,而在下一次运行中,ID将有所不同。有时我会收到以下错误:

Query 1 ERROR: ERROR: invalid value for "HH" in source string

ii。我改用CAST(as timestamp),它以不同的格式显示时间戳,但同样只显示1023条记录。

iii。不是一个特定的时间值被省略。时间为7:30 pm的一条记录可以省略,但另一条晚上7:30的记录显示得很好。

我的查询有问题吗?可能是数据有问题还是Redshift有问题?

0 个答案:

没有答案