Bien que le fuseau horaire par défaut de la valeur renvoyée de la fonction actuelle_date soit UTC, il peut être modifié à l'aide d'autres fonctions intégrées de redshift. De même, certaines fonctions intégrées à redshift peuvent être utilisées pour extraire le jour, le mois et l'année de la valeur renvoyée de la fonction actuelle_date.
Dans ce blog, nous verrons comment la fonction REDSHIFT Current_Date peut être utilisée pour différents cas d'utilisation.
Syntaxe de current_date
La syntaxe de la fonction current_date est beaucoup plus simple que les autres fonctions intégrées disponibles pour le redshift. La fonction Current_Date ne prend aucun argument et peut être utilisée avec une instruction SELECT. Voici la syntaxe pour obtenir la date de début de la transaction actuelle en cours d'exécution sur Amazon Redshift.
Sélectionnez current_date;Obtenez la date actuelle à l'aide de la fonction Current_Date
Afin d'obtenir la date actuelle dans Amazon Redshift, vous pouvez utiliser la fonction Current_Date. La fonction actuelle_date renvoie la date de début de la transaction au lieu de la date de début de l'instruction actuelle.
La requête suivante renvoie la date de début de la transaction actuelle dans le décalage rouge Amazon.
Sélectionnez current_date;Voici la sortie de la fonction Current_Date dans le cluster Amazon Redshift.
DATELa date renvoyée de la fonction Current_Date sera dans le fuseau horaire UTC. Vous devez le régler en fonction de votre fuseau horaire avant de conclure les résultats.
Modifier le fuseau horaire de Current_Date
Comme décrit précédemment, la date renvoyée par la fonction actuelle_date sera dans le fuseau horaire UTC par défaut. Afin d'obtenir la date dans le fuseau horaire souhaité, vous devez modifier le fuseau horaire de la date de l'UTC à votre fuseau horaire préféré.
Afin de convertir le fuseau horaire de la fonction actuelle_date, nous utiliserons une autre fonction intégrée convert_timezone. Cette fonction prendra le fuseau horaire source, le fuseau horaire cible et le temps source, et il convertira l'heure en fuseau horaire cible.
La requête suivante générera la date de début de la transaction actuelle dans le fuseau horaire souhaité.
Sélectionnez convert_timezone ('utc', 'gmt + 5', current_date);Lorsqu'il est exécuté dans Redshift, la requête précédente obtiendra d'abord la date actuelle en utilisant la fonction actuelle_date dans le fuseau horaire UTC, puis convertira le fuseau horaire de la date de l'UTC à GMT + 5.
Obtenir le jour, le mois et l'année de Current_Date
La fonction Current_Date renvoie la date au format Yyyy-mm-dd dans le fuseau horaire UTC. Vous pouvez extraire l'année, le mois et la journée à partir de la date à l'aide de la fonction d'extrait en Amazon Redshift.
Afin d'extraire l'année à partir de la date à l'aide de la fonction Current_Date et Extraire, exécutez la requête suivante dans le cluster Redshift:
Sélectionnez Extrait (année dans Current_Date) en année;La requête précédente obtiendra d'abord la date de début de la transaction actuelle dans le fuseau horaire UTC, puis la fonction d'extrait extrait l'année de cette date.
De même, vous pouvez obtenir le mois à partir de la date actuelle en utilisant la méthode d'extrait. L'exécution de la requête suivante extrait le mois à partir de la date dans le cluster Redshift:
Sélectionnez Extrait (mois dans Current_Date) comme mois;Pour extraire la date de la fonction actuelle_date à l'aide de la fonction d'extrait, exécutez la requête suivante à l'intérieur du cluster Redshift:
Sélectionnez Extrait (jour dans Current_Date) comme jour;La requête Redshift précédente renvoie la date aujourd'hui en l'extrait de la fonction actuelle_date.
Vous pouvez également utiliser la fonction actuelle_date avec convert_timezone et extraire les fonctions pour extraire la date de la date actuelle dans votre fuseau horaire requis. Exécutez la requête suivante dans le cluster Redshift pour extraire la date de la date actuelle dans GMT + 5 fuseau horaire.
Sélectionnez convert_timezone ('utc', 'gmt + 5', extrait (jour de current_date));La requête précédente obtiendra d'abord la date actuelle, puis la fonction d'extrait extraitra la date de la fonction actuelle_date. Ensuite, la fonction convert_timezone modifiera le fuseau horaire de la date de l'UTC à GMT + 5.
Format de date changeant
Le format par défaut de la fonction current_date est yyyy-mm-dd, mais vous pouvez toujours modifier le format de date. La fonction TO_CHAR peut être utilisée pour modifier le format par défaut de la fonction Current_Date.
La requête suivante obtiendra la date de début de la transaction actuelle dans le format souhaité.
SELECT TO_CHAR (current_date, 'mm-dd-yyyy');Conclusion
La fonction actuelle_date dans Redshift peut être utilisée pour obtenir la date de début de la transaction actuelle en cours d'exécution sur le cluster. Par défaut, cette fonction renvoie la date actuelle dans le fuseau horaire UTC au format Yyyy-mm-dd. Cette fonction peut être utilisée avec d'autres fonctions pour intégrer la date actuelle dans le format et le fuseau horaire souhaités. Cet article décrit différents cas d'utilisation de la fonction current_date en conjonction avec d'autres fonctions liées à l'heure et à la date, telles que convert_timezone et extraire.