Hive包含一个表"样本"以下数据:
15-06-2015
15-06-2015
15-06-2015
15-06-2015
15-06-2015
15-06-2015
16-06-2015
使用以下查询我将String类型的数据转换为Hive Date格式:
select TO_DATE(from_unixtime(UNIX_TIMESTAMP(date,'DD-MM-YYYY'))) from sample;
输出如下:
0 2014-12-28
1 2014-12-28
2 2014-12-28
3 2014-12-28
4 2014-12-28
5 2014-12-28
6 2014-12-28
输出与预期输出不同。
请建议如何获得预期的输出,如:
2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-15
2015-06-16
答案 0 :(得分:2)
您的问题是HiveQL通常不区分大小写,但unix_timestamp
函数的第二个参数是区分大小写。因此,查询的正确语法是:
select TO_DATE(from_unixtime(UNIX_TIMESTAMP(date,'dd-MM-yyyy'))) from sample;
通过这种方式,您将获得预期的结果。
答案 1 :(得分:0)
只是一个错字,模式应该是dd-MM-yyyy
。