Comment calculer la Date de différence dans la Ruche
Je suis un novice. J'ai un employé de la table avec une colonne précisant la date de rejoindre et je veux récupérer la liste des employés qui ont rejoint au cours des 3 derniers mois. Je comprends que nous pouvons obtenir la date du jour à l'aide de from_unixtime(unix_timestamp()). Comment dois-je calculer le datediff? Est-il construit en fonction DATEDIFF() comme dans MS SQL? s'il vous plaît conseils!
OriginalL'auteur Holmes | 2015-05-29
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Kishore
Si vous avez besoin de la différence en secondes (c'est à dire: vous êtes à la comparaison des dates avec des horodatages, et pas tout les jours), vous pouvez simplement convertir deux date d'horodatage ou de chaînes de caractères au format 'YYYY-MM-DD HH:MM:SS' (ou spécifier votre chaîne de format de date explicitement) à l'aide de unix_timestamp(), et puis de soustraire l'un de l'autre pour obtenir la différence en quelques secondes. (Et peut ensuite diviser par 60,0 à obtenir des minutes, ou par 3600.0 pour obtenir des heures, etc.)
Exemple:
Plus sur ce que vous pouvez faire avec unix_timestamp() ici, y compris la façon de convertir des chaînes de caractères avec différents formatage de la date: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions
OriginalL'auteur wardw123
oui datediff est mis en œuvre; voir:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
Par la façon dont j'ai trouvé ceci par Google-recherche "de la ruche datediff", il a été le premier résultat 😉
Je ne sais pas, je n'ai jamais utilisé le type timestamp, je l'ai toujours utiliser des chaînes de caractères pour mes colonnes timestamp. Si cela ne fonctionne pas, juste lancer votre colonne de type timestamp à la chaîne (ou laissez la chaîne en premier lieu).
OriginalL'auteur maxymoo
Je voudrais essayer cette première
si, aujourd'hui, est peut, il veut que ceux qui ont adhéré en avril, mars et février, de même pour le mois de juin, il serait peut, en avril et en mars
essayez d'exécuter votre requête avec current_date=2015-01-01 et joining_date=2014-12-01 quel en serait le résultat?
OriginalL'auteur Sambit Tripathy