我的avro数据中有两种格式的日期2001-11-28t06:00:00.000z和10/20/09,我想将其转换为通用格式,如何在hive-0.10.0中实现这一点我想把它转换成2015-01-01 00:00:00格式
mgdq6dx11#
可以使用配置单元中的日期函数像这样的 CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(column,'your-format'),"<desired-format>")AS STRING) 有关更多帮助,请查看这里的日期函数
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(column,'your-format'),"<desired-format>")AS STRING)
brc7rcf02#
我相信你是在一个单一的列中得到这两种格式,如果这种理解是正确的,创建 input_column 作为 string 如果表名是 test 然后查询看起来像 select if (instr(input_column,"/") != 0 , from_unixtime(UNIX_TIMESTAMP(input_column, "MM/dd/yy"),"yyyy-MM-dd HH:mm:ss") , from_unixtime(UNIX_TIMESTAMP(input_column, "yyyy-MM-dd'T'HH:mm:ss.S'Z'"),"yyyy-MM-dd HH:mm:ss")) from test;
input_column
string
test
select if (instr(input_column,"/") != 0 , from_unixtime(UNIX_TIMESTAMP(input_column, "MM/dd/yy"),"yyyy-MM-dd HH:mm:ss") , from_unixtime(UNIX_TIMESTAMP(input_column, "yyyy-MM-dd'T'HH:mm:ss.S'Z'"),"yyyy-MM-dd HH:mm:ss")) from test;
2条答案
按热度按时间mgdq6dx11#
可以使用配置单元中的日期函数
像这样的
CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(column,'your-format'),"<desired-format>")AS STRING)
有关更多帮助,请查看这里的日期函数brc7rcf02#
我相信你是在一个单一的列中得到这两种格式,如果这种理解是正确的,创建
input_column
作为string
如果表名是test
然后查询看起来像select if (instr(input_column,"/") != 0 , from_unixtime(UNIX_TIMESTAMP(input_column, "MM/dd/yy"),"yyyy-MM-dd HH:mm:ss") , from_unixtime(UNIX_TIMESTAMP(input_column, "yyyy-MM-dd'T'HH:mm:ss.S'Z'"),"yyyy-MM-dd HH:mm:ss")) from test;