hive 将配置单元中的时间戳转换为日期

a0zr77ik  于 2022-11-05  发布在  Hive
关注(0)|答案(1)|浏览(185)

我在一个配置单元列中有这种格式的数据。

09/05/2015  12:45:00

我正在尝试将其转换为此格式

20150905, or with semicolons - 2015-09-05

什么是最有效的方法,而不通过linux时间戳?

kr98yfug

kr98yfug1#

请使用date_format
如果您的数据是字符串/时间戳/日期格式,
并且需要yyyy-MM-dd的字符串,则使用-date_format(date_time_col, 'yyyy-MM-dd')
并且需要日期格式,则使用-cast( date_format(date_time_col, 'yyyy-MM-dd') as date)

***EDIT***如果您有一个字符串'MM/dd/yyyy',您需要在将它们发送到date_format之前拆分该字符串并将它们连接起来。

date_format( 
concat_ws('-', substr(split(date_time_col,'/')[2],1,4),split(date_time_col,'/')[0], split(date_time_col,'/')[1] )
, 'yyyy-MM-dd')

你可以像这样把它们结合起来-

case when date_format(date_time_col, 'yyyy-MM-dd') is null 
date_format( 
concat_ws('-', substr(split(date_time_col,'/')[2],1,4),split(date_time_col,'/')[0], split(date_time_col,'/')[1] )
, 'yyyy-MM-dd') 
else date_format(date_time_col, 'yyyy-MM-dd')
end

相关问题