2015-03-17 1 views
0

J'essaie de trouver le meilleur moyen de soustraire 1 an et un mois de la date actuelle dans une requête Hive. En utilisant ce qui suit, je ne crois pas que cela prendra en compte les années bissextiles ou si le fait que les mois ont des quantités différentes de jours, finira par casser le code. Toute aide serait grandement appréciée!Hive: Soustrayant 1 an de la date actuelle

set my_date = from_unixtime(unix_timestamp()-365*60*60*24, 'yyyy-MM-dd'); 
set my_date = from_unixtime(unix_timestamp()-30*60*60*24, 'yyyy-MM-dd'); 

Merci!

-Rebecca

Répondre

-1

Si vous avez le format de date comme aaaa-mm-jj hh: mm: ss Ruches, il est facile à mettre en œuvre en utilisant les fonctions suivantes

concat ((année (date_field) -1), '-', (mois (champ_date) -1), '-', jour (champ_date))

Utilisez les fonctions IF et CASE pour implémenter votre logique afin de déterminer si elle est bissextile ou non (en divisant année par 4)