微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redshift dateadd函数错误将时间值从varchar强制转换为time

如何解决Redshift dateadd函数错误将时间值从varchar强制转换为time

我正在RedShift数据库中使用工作台执行查询,并且收到以下error。我找不到相同的解决方案。

解决方法

Redshift dateadd()函数对日期或时间戳记数据类型(而不是时间数据类型)进行操作。您没有在“ arrival_time”中显示该值,因此不清楚您需要哪种类型。如果到达时间是日期加时间,则只需将其转换为时间戳而不是时间即可。如果该字符串中只有时间,则将要添加一个间隔,而不要使用dateadd()。像这样:

cast(arrival_time as time) + interval '1 hour'  -- doesn't work due issue described in comments

这种方法也适用于时间戳。

编辑:从注释中拉出更正的代码,以明确答案。

cast(cast('2000/01/01 '||arrival_time as timestamp) + interval '1 hour' as time)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。