在配置单元中将日期从字符串更改为日期类型

时间:2017-03-25 19:51:22

标签: hive

我想将格式为dd/mm/yyyy的字符串更改为hive中的日期类型。

我正在使用hive版本1.0.0。我尝试过使用:

TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'dd/mm/yyyy'))) 

但它会返回NULL。虽然它适用于格式'dd-mm-yyyy'。但它返回NULL 'dd/mm/yyyy'

我也试过使用CAST,但它也没有给我正确的结果。

2 个答案:

答案 0 :(得分:6)

M - month
m - minutes
hive> select TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'dd/MM/yyyy'))) ;
OK
2013-03-07

hive> select TO_DATE(from_unixtime(UNIX_TIMESTAMP('07/03/2013', 'd/M/y'))) ;
OK
2013-03-07

hive> select cast (regexp_replace('07/03/2013','(..)/(..)/(....)','$3-$2-$1') as date);
OK
2013-03-07

答案 1 :(得分:0)

我会尝试两种选择:

  1. 检查简单更换是否有效:
  2.   

    TO_DATE(from_unixtime(UNIX_TIMESTAMP(替换('07 / 03/2013','/',' - '),'dd-MM-yyyy')))

    1. 查看date documentation以检查是否有任何功能适用于您