1
Select * from concat(YEAR(DATE_SUB(MAX(Column_name),60),MONTH(DATE_SUB(MAX(Column_name),60),-01)
的month()
產量僅單位使用一個月()數月至九月即一月返回1
而不是01
。在處理這件事上需要幫助。月在MM在蜂巢
我正在使用此輸出來提供使用TO_DATE
的另一個SELECT
查詢。
Select * from concat(YEAR(DATE_SUB(MAX(Column_name),60),MONTH(DATE_SUB(MAX(Column_name),60),-01)
的month()
產量僅單位使用一個月()數月至九月即一月返回1
而不是01
。在處理這件事上需要幫助。月在MM在蜂巢
我正在使用此輸出來提供使用TO_DATE
的另一個SELECT
查詢。
month()
函數返回整數,這就是爲什麼沒有前導零。您可以使用lpad(month,2,0)
函數格式月:
hive> select lpad(month('2017-09-01'),2,0);
OK
09
Time taken: 0.124 seconds, Fetched: 1 row(s)
hive> select lpad(month('2017-10-01'),2,0);
OK
10
Time taken: 0.433 seconds, Fetched: 1 row(s)
或者您可以使用substr()
從日期提取年份和月份:
hive> select substr('2017-10-01',1,4) as year, substr('2017-10-01',6,2) as month;
OK
year month
2017 10
DATE_SUB()蜂巢2.1.0之前的功能(HIVE- 13248)返回類型是一個String,因爲創建方法時不存在Date類型。請看這裏:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF