将日期时间字符串(3/24/2017 10:00:00 PM)转换为(3-24-2017 22:00:00)hive,即从12小时转换为24小时格式

时间:2017-10-27 19:32:22

标签: datetime hadoop hive

我在hive表中有一个datetime字段,其数据类型为字符串。

如下所示:

datetime 3/24/2017 10:00:00 PM

尝试将其转换为hive所需的正确格式,并尝试将AM / PM移至24小时格式但无效。

select from_unixtime(unix_timestamp(datetime,'mm-dd-yyyy HH:MM:SS')) from test_table

3 个答案:

答案 0 :(得分:4)

您可以使用以下命令实现此目的:

select from_unixtime(unix_timestamp(datetime,'MM/dd/yyyy hh:mm:ss aa'),'MM-dd-yyyy HH:mm:ss') from test_table;

答案 1 :(得分:0)

格式为MM-dd-yyyy HH:mm:ss aa

select from_unixtime(unix_timestamp(datetime,'MM-dd-yyyy HH:mm:ss aa')) from test_table;

答案 2 :(得分:0)

使用'MM / dd / yyyy hh:mm:ss aa'无效。您可以使用以下方法对此进行归档:

FROM_UNIXTIME
(
    (
    CASE WHEN 
             datetime LIKE '%AM%' 
         THEN 
             UNIX_TIMESTAMP(datetime,'MM/dd/yyyy HH:mm:ss aa') 
         ELSE 
            (UNIX_TIMESTAMP(datetime,'MM/dd/yyyy HH:mm:ssaa') + (12 * 3600)) 
    END
    )
    ,'MM-dd-yyyy HH:mm:ss'
)