2017-03-06 35 views
1

提取日期和月份的時候前導零我有日期,看起來如此如何保持從日期

2017-02-22 
2017-02-23 
2017-02-05 

我需要在這個格式dd.mm提取日期,所以它看起來是那麼

23.02 
22.02 
05.02 

但這

concat(day(PLAN_REPAYMENT_DATE_KEY), '.', month(PLAN_REPAYMENT_DATE_KEY)) 

回報

23.2 
22.2 
5.2 

如何保持前導零?

回答

1
1. date_format(PLAN_REPAYMENT_DATE_KEY,'dd.MM') 
2. from_unixtime(unix_timestamp(PLAN_REPAYMENT_DATE_KEY),'dd.MM') 
3. printf('%02d.%02d',day(PLAN_REPAYMENT_DATE_KEY),month(PLAN_REPAYMENT_DATE_KEY)) 

hive> with t as (select date '2017-02-05' as PLAN_REPAYMENT_DATE_KEY) 
    > select date_format(PLAN_REPAYMENT_DATE_KEY,'dd.MM') from t; 
OK 
05.02 

hive> with t as (select date '2017-02-05' as PLAN_REPAYMENT_DATE_KEY) 
    > select from_unixtime(unix_timestamp(PLAN_REPAYMENT_DATE_KEY),'dd.MM') from t; 
OK 
05.02 

hive> with t as (select date '2017-02-05' as PLAN_REPAYMENT_DATE_KEY) 
    > select printf('%02d.%02d',day(PLAN_REPAYMENT_DATE_KEY),month(PLAN_REPAYMENT_DATE_KEY)) from t; 
OK 
05.02 
+0

添加了date_format(自Hive 1.2.0起) –

0
concat(LPAD(day(PLAN_REPAYMENT_DATE_KEY), 2, '0'), '.', LPAD(MONTH(PLAN_REPAYMENT_DATE_KEY), 2, '0')) 

編輯:添加LPAD到一天。

+0

這一天也應該被填充 –

+0

@DuduMarkovitz這是真的; ) – Whencesoever