Lorsque vous entrez votre requête dans l’éditeur SQL ou créez un calcul, vous utilisez la syntaxe Presto SQL. Pour ajuster ou effectuer des calculs sur des valeurs de date ou d’horodatage, ces fonctions courantes peuvent s’avérer utiles.
Note : les variables d’exécution dans les chaînes, telles que celles utilisées pour les transformations de date et d’heure, utilisent Python strftime plutôt que Presto SQL.
AT TIME ZONE
Pour convertir le fuseau horaire d’un horodatage, utilisez l’opérateur AT TIME ZONE. Par exemple :
SELECT cast(timestamp ’2020-10-31 01:00 UTC’ as VARCHAR) 2020-10-31 01:00:00.000 UTC SELECT cast(timestamp ’2020-10-31 01:00 UTC’ AT TIME ZONE ’America/Los_Angeles’ as VARCHAR) 2020-10-30 18:00:00.000 America/Los_Angeles
Conseil : Dans la plupart des régions, vous pouvez utiliser America/Los_Angeles pour le fuseau horaire Pacifique, America/Denver pour Mountain, America/Chicago pour Central et America/New_York pour Eastern.
CURRENT_DATE
Pour obtenir la date d’exécution de la requête, utilisez la fonction CURRENT_DATE. Par exemple, SELECT CURRENT_DATE().
DATE
Pour convertir une valeur en date, utilisez la fonction DATE : DATE(valeur).
DATE_ADD
Pour ajouter une valeur d’unité d’intervalle à une date ou à un horodatage, utilisez la fonction DATE_ADD : DATE_ADD(unité, valeur, horodatage). Pour l’unité , DATE_ADD prend en charge :
millisecondesecondeminuteheurejoursemainemoistrimestreannée
Par exemple, SELECT DATE_ADD(’jour’, 10, "2020-06-15") renvoie 2020-06-25.
Note : pour analyser une chaîne mise en forme selon IS08601 en tant que valeur de date, utilisez la fonction FROM_ISO8601_DATE, par exemple FROM_ISO8601_DATE(’2020-06-15’).
DATE_DIFF
Pour obtenir la différence entre deux valeurs de date ou d’horodatage, utilisez la fonction DATE_DIFF : DATE_DIFF(unité, horodatage1, horodatage2). Pour l’unité, DATE_DIFF prend en charge les mêmes valeurs que DATE_ADD. Par exemple, SELECT DATE_DIFF(’jour’, "2020-06-15", "2020-06-25") retourne 10.
Note : DATE_DIFF ne s’applique qu’aux objets Date et il se peut que vous deviez mouler d’autres objets pour que cette fonction fonctionne.
Note : pour analyser une chaîne mise en forme selon IS08601 en tant que valeur de date, utilisez la fonction FROM_ISO8601_DATE, par exemple FROM_ISO8601_DATE(’2020-06-15’).
DATE_FORMAT
Pour renvoyer une date ou un horodatage dans un format défini, utilisez la fonction DATE_FORMAT : DATE_FORMAT(horodatage, format). Pour le format, DATE_FORMAT prend en charge une combinaison de ces valeurs :
| Mettre en forme | Description |
|---|---|
%a |
Nom abrégé du jour de la semaine, de Dim à Sam |
%b |
Nom abrégé du mois, de Jan à Déc |
%c |
Valeur numérique du mois, de 1 à 12 |
%D
|
Numeric day of the month with its suffix, such as 1st,
2nd, 3rd...
|
%d |
Jour du mois sous la forme d’un nombre à deux chiffres, de 01 à 31 |
%e |
Jour du mois en chiffres, de 1 à 31 |
%f |
Milliseconde, de 000000 à 999000 pour l’impression ; de 0 à 999999999 pour l’analyse |
%H |
Heure de l’horloge de 24 heures sous la forme d’un nombre à deux chiffres, de 00 à 23 |
%h ou %I |
Heure de l’horloge de 12 heures sous la forme d’un nombre à deux chiffres, de 00 à 12 |
%i |
Minute, de 00 à 59 |
%j |
Jour de l’année sous forme de nombre à trois chiffres, de 000 à 366 |
%k |
Heure de l’horloge de 24 heures, de 0 à 23 |
%l |
Heure de l’horloge de 12 heures, de 0 à 12 |
%M |
Nom du mois, de janvier à décembre |
%m |
Valeur numérique du mois sous la forme d’un nombre à deux chiffres, de 01 à 12 |
%p |
AM ou PM de l’horloge de 12 heures |
%r |
Heure sur une horloge de 12 heures, sous la forme hh:mm:ss suivi de AM ou PM |
%s ou %S |
Seconde, de 00 à 59 |
%T |
Heure sur une horloge de 24 heures, sous la forme hh:mm:ss |
%U
|
Week of the year, from 00 to 53,
where Sunday is the first day of the week
|
%u
|
Week of the year, from 00 to 53,
where Monday is the first day of the week
|
%V
|
Week of the year, from 01 to 53,
where Sunday is the first day of the week; used with %X
|
%v |
Semaine de l’année, de 01 à 53, où le lundi est le premier jour de la semaine ; utilisé avec %x |
%W |
Nom du jour de la semaine, de Dimanche à Samedi |
%w
|
Day of the week, from 0 to 6,
where Sunday is the first day of the week
|
%X
|
Year for when Sunday is the first day of the week; used with %V
|
%x |
Année pour laquelle le lundi est le premier jour de la semaine ; utilisé avec %v |
%Y |
Année, sous forme de nombre à quatre chiffres |
%y |
Année, sous forme de nombre à deux chiffres Note : lors de l’analyse, |
%% |
Le caractère littéral % |
Note : pour obtenir le jour de la semaine sous forme de nombre, de 1 à 7, utilisez la fonction DAY_OF_WEEK.
DAY
Pour obtenir le jour du mois, sous la forme d’un nombre compris entre 1 et 31, à partir d’une date ou d’un horodatage, utilisez la fonction DAY sous la forme DAY(valeur_date). Par exemple, SELECT DAY("2020-06-15") renvoie 15.
DAY_OF_WEEK
Pour obtenir le jour de la semaine, sous la forme d’un nombre compris entre 1 pour le lundi et 7 pour le dimanche, à partir d’une date ou d’un horodatage, utilisez la fonction DAY_OF_WEEK sous la forme DAY_OF_WEEK(valeur_date).
EOMONTH
Pour obtenir le nombre du dernier jour du mois à partir d’une date ou d’un horodatage, utilisez la fonction EOMONTH, telle que EOMONTH(valeur_date, valeur_numéro_mois).
FROM_ISO8601_DATE
Pour analyser une chaîne au format ISO8601 en tant que date, utilisez la fonction FROM_ISO8601_DATE, telle que FROM_ISO8601_DATE(valeur_date).
INTERVAL
Pour ajouter ou soustraire des valeurs d’unités d’intervalle pour une date ou un horodatage, utilisez la fonction INTERVAL avec un opérateur + ou -, tel que +/- INTERVAL valeur unité. Pour unité, INTERVAL prend en charge les mêmes valeurs que DATE_ADD. Par exemple :
-
DATE ’2020-08-08’ + INTERVALLE ’2’ jourrenvoie 2020-08-10. -
TIMESTAMP ’2020-08-08 01:00’ + INTERVALLE ’29’ heurerenvoie 2020-08-09 06:00:00.000. -
INTERVALLE ’2’ jour + INTERVALLE ’3’ heurerenvoie 2 03:00:00.000. -
TIMESTAMP ’2020-10-31 01:00’ - INTERVALLE ’1’ moisrenvoie 2020-09-30 01:00:00.000.
MONTH
Pour obtenir le mois, sous la forme d’un nombre compris entre 1 et 12, à partir d’une date ou d’un horodatage, utilisez la fonction MONTH sous la forme MONTH(valeur_date). Par exemple, SELECT MONTH("2020-06-15") renvoie 6.
NOW
Pour obtenir l’heure d’exécution de la requête, utilisez la fonction NOW. Par exemple, SELECT NOW().
QUARTER
Pour obtenir le trimestre de l’année, sous la forme d’un nombre compris entre 1 et 4, à partir d’une date ou d’un horodatage, utilisez la fonction QUARTER sous la forme QUARTER(valeur_date). Par exemple, SELECT QUARTER("2020-06-15") renvoie 2.
YEAR
Pour obtenir l’année, sous la forme d’un nombre compris entre 1 000 et 9 990, à partir d’une date ou d’un horodatage, utilisez la fonction YEAR sous la forme YEAR(valeur_date). Par exemple, SELECT YEAR("2020-06-15") renvoie 2020.