gpt4 book ai didi

hadoop - Hive 到 Redshift 日期/时间转换

转载 作者:可可西里 更新时间:2023-11-01 16:10:36 24 4
gpt4 key购买 nike

我最近将存储在 Hadoop 中的数据移动到 Redshift,Hadoop 数据中的时间字段存储为 STRING。在 Redshift 中,字段是 VARCHAR(20)。 Hadoop 中日期 STRING 的格式为“YYYY-MM-DD-HH-MI-SS”。

我试图找出 Redshift 中两个时间字段之间的时差(以秒为单位),但似乎无法正确设置日期格式。我知道如何使用 DATEDIFF 函数,但无法正确格式化从 Hadoop 到 Redshift 的传入日期字符串。使用 TO_DATE(trans_time, 'YYYY-MM-DD HH:MI:SS) 函数只返回 'YYYY-MM-DD' 形式的值,其余的小时、分钟、秒被截断。

有什么想法吗?

我能够让它工作,看起来很麻烦而且效率低下......

select
trans_time,
datediff(second, '2015-05-31 00:00:00',
cast(to_date(trans_time, 'YYYY-MM-DD')
|| ' ' ||
split_part(trans_time, '-', 4)
|| ':' ||
split_part(trans_time, '-', 5)
|| ':' ||
split_part(trans_time, '-', 6) AS TIMESTAMP))
from <table_name>;

最佳答案

我能想到的最佳答案是用 TIMESTAMP 列而不是 VARCHAR 重新设计我的表。在我必须指定的 COPY 函数中,

timeformat 'YYYY-MM-DD-HH-MI-SS'

关于hadoop - Hive 到 Redshift 日期/时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32336840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com