Comment convertir une Date en Chaîne de caractères à partir UTC Spécifiques Fuseau horaire dans la RUCHE?
Ma Ruche table a une colonne de date à date UTC cordes. Je veux obtenir toutes les lignes d'un spécifique HNE date.
Je suis en train de faire quelque chose comme ci-dessous:
Select *
from TableName T
where TO_DATE(ConvertToESTTimeZone(T.date)) = "2014-01-12"
Je veux savoir si il y a une fonction pour ConvertToESTTimeZone, ou comment je peux réaliser cela?
J'ai essayé ce qui suit, mais il ne marche pas (mon fuseau horaire par défaut est CST):
TO_DATE(from_utc_timestamp(T.Date) = "2014-01-12"
TO_DATE( from_utc_timestamp(to_utc_timestamp (unix_timestamp (T.date), 'CST'),'EST'))
Merci d'avance.
Mise à jour:
Strange behavior. When I do this:
select "2014-01-12T15:53:00.000Z", TO_DATE(FROM_UTC_TIMESTAMP(UNIX_TIMESTAMP("2014-01-12T15:53:00.000Z", "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"), 'EST'))
from TABLE_NAME T1
limit 3
- Je obtenir
_c0 _c1
0 2014-01-12T15:53:00.000Z 1970-01-16
1 2014-01-12T15:53:00.000Z 1970-01-16
2 2014-01-12T15:53:00.000Z 1970-01-16
OriginalL'auteur Gadam | 2015-02-13
Vous devez vous connecter pour publier un commentaire.
Votre système fuseau horaire CST n'a pas d'importance pour la conversion de l'UTC à l'est dans la Ruche. Vous devriez être en mesure d'obtenir des résultats corrects avec:
Noter que parce que
UNIX_TIMESTAMP
retourne secondes, vous perdez de l'ordre de la milliseconde composant de votre timestamp.Il ressemble à la date de chaînes ne sont pas dans le format par défaut de la Ruche attend. Au lieu de cela, vous pouvez passer un deuxième argument à UNIX_TIMESTAMP qui inclut le format de date de votre domaine, tel que défini dans docs.oracle.com/javase/tutorial/i18n/format/.... Voir aussi ici: cwiki.apache.org/confluence/display/Hive/...
Pls voir la mise à jour en question.
Aha oui, la Ruche suppose millisecondes lors de la conversion de INT TIMESTAMP, donc nous avons besoin d'ajouter un
* 1000
. J'ai mis à jour ma réponse.Qui a résolu mon problème. Je suis la sélection de ce que la réponse. Mais pouvez-vous mettre à jour votre réponse avec un peu plus de détails; est-ce un problème avec la Ruche? Quand je suis en fournissant les millisecondes dans le cadre de ma date, pourquoi dois-je encore multiplier par 1000 pour convertir la sortie de millis.. merci.
OriginalL'auteur Jeremy Beard
Ce convertit à la CST à l'heure d'été heure de décalage:
OriginalL'auteur Carl