2016-05-31 81 views
0

我已經演示表 我想創建視圖,這是我的查詢查詢到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

回答

0

這可以通過使用提示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