查询将hive中的24日期格式转换为12日期格式

时间:2016-05-31 12:36:48

标签: hive

我有演示表 我想创建视图,这是我的查询

create view Demo_View as
select sms_sent_identifier,year(sms_sent_dt)  Year1,
case month(sms_sent_dt) 
 when 1 then 'Q1'
 when 2 then 'Q1'
 when 3 then 'Q1' 
 when 4 then 'Q2'
 when 5 then 'Q2'
 when 6 then 'Q2' 
 when 7 then 'Q3'
 when 8 then 'Q3'
 when 9 then 'Q3' 
 when 10 then 'Q4'
 when 11 then 'Q4'
 when 12 then 'Q4'
 end  Quarter1, 
Month(sms_sent_dt) Month1,
day(sms_sent_dt) Date1,
***hour(sms_sent_dt) Hour1,***
minute(sms_sent_dt) Minute1
 from subs_sms;

O / p它给出了日期时间,例如12,13我希望它以12格式,即上午11点,上午12点 我应该怎么做

1 个答案:

答案 0 :(得分:0)

这可以通过使用提醒a%b以简单的方式完成。如果除以12,您将获得12小时值。或者第二种方法是将日期格式改为yyyy-MM-dd HH:mm:ss to yyyy-MM-dd hh:mm:ss。我在下面给出了第一种和第二种方法的例子。

请尝试第一种方法:

create view Demo_View as
select sms_sent_identifier,year(sms_sent_dt)  Year1,
case month(sms_sent_dt) 
 when 1 then 'Q1'
 when 2 then 'Q1'
 when 3 then 'Q1' 
 when 4 then 'Q2'
 when 5 then 'Q2'
 when 6 then 'Q2' 
 when 7 then 'Q3'
 when 8 then 'Q3'
 when 9 then 'Q3' 
 when 10 then 'Q4'
 when 11 then 'Q4'
 when 12 then 'Q4'
 end  Quarter1, 
Month(sms_sent_dt) Month1,
day(sms_sent_dt) Date1,
(hour(sms_sent_dt)%12) Hour1,
minute(sms_sent_dt) Minute1
 from subs_sms;

这是第二种方法:

hour(from_unixtime(unix_timestamp(sms_sent_dt),'yyyy-MM-dd hh:mm:ss'))