Date 配置单元中的Unix时间戳提供了相同的结果
我正在使用Hive1.2.1000。 实际上,我正在处理到unix时间戳的转换。我正在尝试使用以下格式转换日期: 年月日hh:mm:ss 到unix_时间戳,因此: unix_时间戳(日期,“dd-mm-yyy-hh:mm:ss”) 已经用过了 更准确地说,我运行了以下代码: 选择'09/06/2012 04:02:32',regexp_替换('09/06/2012 04:02:32',“/”,“-”) 这似乎有效,事实上结果是:1326081752 我还注意到,我有N个不同的日期,这些日期的unix_时间戳是M和MDate 配置单元中的Unix时间戳提供了相同的结果,date,hive,yarn,unix-timestamp,hue,Date,Hive,Yarn,Unix Timestamp,Hue,我正在使用Hive1.2.1000。 实际上,我正在处理到unix时间戳的转换。我正在尝试使用以下格式转换日期: 年月日hh:mm:ss 到unix_时间戳,因此: unix_时间戳(日期,“dd-mm-yyy-hh:mm:ss”) 已经用过了 更准确地说,我运行了以下代码: 选择'09/06/2012 04:02:32',regexp_替换('09/06/2012 04:02:32',“/”,“-”) 这似乎有效,事实上结果是:1326081752 我还注意到,我有N个不同的日期,这些日期的u
09/06/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
这显然是相同的
此结果可以扩展到所有日期,其中除dd和mm之间的日期外,所有日期都相同
你能解释一下为什么吗
提前感谢,,
曼努埃尔
另外,我也尝试过使用其他格式的日期,例如:
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")
但结果是一样的。问题是mm代表分钟 dd-MM-yyyy hh:MM:ss 而不是 dd-mm-yyyy hh:mm:ss 这是问题的解决办法
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")