Datetime 将日期时间字符串(2017年3月24日10:00:00 PM)转换为(2017年3月24日22:00:00)配置单元,即从12小时格式转换为24小时格式
我在配置单元表中有一个数据类型为string的datetime字段 情况如下:Datetime 将日期时间字符串(2017年3月24日10:00:00 PM)转换为(2017年3月24日22:00:00)配置单元,即从12小时格式转换为24小时格式,datetime,hadoop,hive,Datetime,Hadoop,Hive,我在配置单元表中有一个数据类型为string的datetime字段 情况如下: datetime 3/24/2017 10:00:00 PM 尝试将其转换为配置单元所需的正确格式,并尝试将AM/PM删除为24小时格式,但无效 select from_unixtime(unix_timestamp(datetime,'mm-dd-yyyy HH:MM:SS')) from test_table 格式为MM dd yyyy HH:MM:ss aa select from_unixtime(uni
datetime 3/24/2017 10:00:00 PM
尝试将其转换为配置单元所需的正确格式,并尝试将AM/PM删除为24小时格式,但无效
select from_unixtime(unix_timestamp(datetime,'mm-dd-yyyy HH:MM:SS')) from test_table
格式为
MM dd yyyy HH:MM:ss aa
select from_unixtime(unix_timestamp(datetime,'MM-dd-yyyy HH:mm:ss aa')) from test_table;
您可以使用以下命令实现此目的:
select from_unixtime(unix_timestamp(datetime,'MM/dd/yyyy hh:mm:ss aa'),'MM-dd-yyyy HH:mm:ss') from test_table;
“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'
)