month()
La fonction renvoie un entier, c'est pourquoi il n'y a pas de zéro. Vous pouvez utiliser la fonction lpad(month,2,0)
au format mois:
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)
Vous pouvez également utiliser substr()
pour extraire année et le mois de la date:
hive> select substr('2017-10-01',1,4) as year, substr('2017-10-01',6,2) as month;
OK
year month
2017 10
fonction DATE_SUB() avant Hive 2.1.0 (HIVE- 13248) return type était une chaîne car aucun type de date n'existait lors de la création de la méthode. Voir ici: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF