【发布时间】:2019-08-04 08:19:03
【问题描述】:
我正在使用 Hive 1.2.1000。 我实际上正在处理转换为 unix 时间戳。我正在尝试使用格式转换日期:
dd/mm/yyyy hh:mm:ss
到 unix_timestamp,因此:
unix_timestamp(date,"dd-mm-yyyy hh:mm:ss")
已经用过了。
更准确地说,我已经运行了以下代码:
select '09/06/2012 04:02:32', regexp_replace('09/06/2012 04:02:32',"/","-")
这似乎可行,实际上结果是:1326081752
我还注意到我有 N 个不同的日期,这些日期在 unix_timestamp 上的不同是 M 和 M 。
对数据进行一些操作,我发现有不同的日期具有相同的 unix_timestamp。 因此,我尝试更深入,并找到了很多日期,例如 和 现在,如果我尝试运行以下代码: 这是输出: 这显然是一样的。 这个结果可以扩展到除了 dd 和 mm 之间的所有日期之外的所有日期。 你能解释一下为什么吗? 提前致谢,
曼努埃尔 附言。我也尝试过使用其他格式的日期,例如: 但结果是一样的。09/06/2012 04:02:32
09/12/2012 04:02:32
select
'09/06/2012 04:02:32',
regexp_replace('09/06/2012 04:02:32',"/","-"),
unix_timestamp(regexp_replace('09/06/2012 04:02:32',"/","-"),"dd-mm-yyyy hh:mm:ss"),
unix_timestamp('09-06-2012 04:02:32',"dd-mm-yyyy hh:mm:ss")
UNION ALL
select '09/12/2012 04:02:32',
regexp_replace('09/12/2012 04:02:32',"/","-"),
unix_timestamp(regexp_replace('09/12/2012 04:02:32',"/","-"),"dd-mm-yyyy hh:mm:ss"),
unix_timestamp('09-12-2012 04:02:32',"dd-mm-yyyy hh:mm:ss")
09/06/2012 04:02:32 09-06-2012 04:02:32 1326081752 1326081752 1326081752
09/12/2012 04:02:32 09-12-2012 04:02:32 1326081752 1326081752 1326081752
select '2012-06-09 04:02:32', unix_timestamp(regexp_replace('2012-06-09 04:02:32',"/","-"),"yyyy-mm-dd hh:mm:ss")
UNION ALL
select '2012-12-09 04:02:32', unix_timestamp(regexp_replace('2012-12-09 04:02:32',"/","-"),"yyyy-mm-dd hh:mm:ss")
【问题讨论】:
标签: date hive hadoop-yarn unix-timestamp hue