查询到24日期格式12日期格式转换成蜂巢

问题描述:

我已经演示表 我想创建视图,这是我的查询查询到24日期格式12日期格式转换成蜂巢

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

采取看看下面的链接:http://docs.oracle.com/javase/tutorial/i18n /format/simpleDateFormat.html&https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions – Ambrish

这可以通过使用提示a%b来以简单的方式完成。如果你除以12,你将得到12小时的价值。或者第二种方法是将日期中的格式更改为yyyy-MM-dd HH:mm:ss至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')) 
+0

谢谢我会检查并让你知道 – Pankaj

+0

它以12格式出现,但它不是来上午或下午 – Pankaj

+0

上午/下午标记,您将需要'aa't o作为格式的一部分存在。例如:小时(from_unixtime(unix_timestamp(sms_sent_dt),'yyyy-MM-dd hh:mm:ss aa')) 了解更多详情,请访问:https://docs.oracle.com/javase/7/docs /api/java/text/SimpleDateFormat.html – BalaramRaju