Parties de date pour les fonctions de date ou d’horodatage - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Parties de date pour les fonctions de date ou d’horodatage

Le tableau suivant identifie les noms de partie de date et d’horodatage et les abréviations qui sont acceptées comme arguments pour les fonctions suivantes :

  • DATEADD

  • DATEDIFF

  • DATE_PART

  • EXTRACT

Partie de date ou de temps Abréviations
millénaire, millénaires mil
siècle, siècles s, siècle, siècles
décennie, décennies déc
époque époque (prise en charge par la EXTRACT)
année, années an, ans
trimestre, trimestres trim
mois mois
semaine, semaines

s, sem

jour de la semaine

jdls (pris en charge par les fonctions DATE_PART et Fonction EXTRACT)

Renvoie un nombre entier compris entre 0 et 6, en commençant par le dimanche.

Note

La partie de date DOW se comporte différemment de la partie de date jour de la semaine (D) utilisée pour les chaînes au format datetime. D s’appuie sur des nombres entiers compris entre 1 et 7, où le dimanche est 1. Pour plus d'informations, consultez Chaînes de format datetime.

jour de l’année dayofyear, doy, dy, yearday (prise en charge par la EXTRACT)
jour, jours d
heure, heures h
minute, minutes m, min
seconde, secondes s
milliseconde, millisecondes ms
microseconde, microsecondes µs
timezone, timezone_hour, timezone_minute Pris en charge par la EXTRACT pour l’horodatage avec fuseau horaire (TIMESTAMPTZ) uniquement.

Variations de résultats avec les secondes, les millisecondes et les microsecondes

Des différences mineures dans les résultats de la requête se produisent lorsque d’autres fonctions de date spécifient les secondes, les millisecondes ou les microsecondes comme des parties de date :

  • La fonction EXTRACT renvoie des nombres entiers pour la partie de date spécifiée uniquement, sans tenir compte des parties de date de niveau supérieur et inférieur. Si la partie de date spécifiée est les secondes, les millisecondes et les microsecondes ne figurent pas dans le résultat. Si la partie de date spécifiée est les millisecondes, les secondes et les microsecondes ne sont pas incluses. Si la partie de date spécifiée est les microsecondes, les secondes et les millisecondes ne sont pas incluses.

  • La fonction DATE_PART renvoie la seconde partie complète de l’horodatage, quelle que soit la partie de date spécifiée, en renvoyant une valeur décimale ou un nombre entier comme requis.

Par exemple, comparez les résultats des requêtes suivantes :

create table seconds(micro timestamp); insert into seconds values('2009-09-21 11:10:03.189717'); select extract(sec from micro) from seconds; date_part ----------- 3 select date_part(sec, micro) from seconds; pgdate_part ------------- 3.189717

Remarques sur CENTURY, EPOCH, DECADE et MIL

CENTURY ou CENTURIES

Amazon Redshift interprète un CENTURY comme démarrant avec l’année ###1 et se terminant par l’année ###0 :

select extract (century from timestamp '2000-12-16 12:21:13'); date_part ----------- 20 select extract (century from timestamp '2001-12-16 12:21:13'); date_part ----------- 21
EPOCH

L’implémentation d’Amazon Redshift d’EPOCH est associée à 1970-01-01 00:00:00.000000 quel que soit le fuseau horaire sur lequel réside le cluster. Vous devrez peut-être décaler les résultats de la différence en heures selon le fuseau horaire sur lequel se trouve le cluster.

L’exemple suivant illustre les éléments suivants :

  1. Crée une table appelée EVENT_EXAMPLE en fonction de la table EVENT. Cette commande CREATE AS utilise la fonction DATE_PART pour créer une colonne de date (appelée PGDATE_PART par défaut) pour stocker la valeur epoch de chaque événement.

  2. Sélectionne le type de colonne et de données d’EVENT_EXAMPLE de PG_TABLE_DEF.

  3. Sélectionne EVENTNAME, STARTTIME et PGDATE_PART de la table EVENT_EXAMPLE pour afficher les différents formats de date et d’heure.

  4. Sélectionne EVENTNAME et STARTTIME à partir de EVENT EXAMPLE tel quel. Convertit les valeurs d’époque dans PGDATE_PART à l’aide d’un intervalle de 1 seconde dans un horodatage sans fuseau horaire et renvoie les résultats dans une colonne appelée CONVERTED_TIMESTAMP.

create table event_example as select eventname, starttime, date_part(epoch, starttime) from event; select "column", type from pg_table_def where tablename='event_example'; column | type ---------------+----------------------------- eventname | character varying(200) starttime | timestamp without time zone pgdate_part | double precision (3 rows)
select eventname, starttime, pgdate_part from event_example; eventname | starttime | pgdate_part ----------------------+---------------------+------------- Mamma Mia! | 2008-01-01 20:00:00 | 1199217600 Spring Awakening | 2008-01-01 15:00:00 | 1199199600 Nas | 2008-01-01 14:30:00 | 1199197800 Hannah Montana | 2008-01-01 19:30:00 | 1199215800 K.D. Lang | 2008-01-01 15:00:00 | 1199199600 Spamalot | 2008-01-02 20:00:00 | 1199304000 Macbeth | 2008-01-02 15:00:00 | 1199286000 The Cherry Orchard | 2008-01-02 14:30:00 | 1199284200 Macbeth | 2008-01-02 19:30:00 | 1199302200 Demi Lovato | 2008-01-02 19:30:00 | 1199302200 select eventname, starttime, timestamp with time zone 'epoch' + pgdate_part * interval '1 second' AS converted_timestamp from event_example; eventname | starttime | converted_timestamp ----------------------+---------------------+--------------------- Mamma Mia! | 2008-01-01 20:00:00 | 2008-01-01 20:00:00 Spring Awakening | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Nas | 2008-01-01 14:30:00 | 2008-01-01 14:30:00 Hannah Montana | 2008-01-01 19:30:00 | 2008-01-01 19:30:00 K.D. Lang | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Spamalot | 2008-01-02 20:00:00 | 2008-01-02 20:00:00 Macbeth | 2008-01-02 15:00:00 | 2008-01-02 15:00:00 The Cherry Orchard | 2008-01-02 14:30:00 | 2008-01-02 14:30:00 Macbeth | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 Demi Lovato | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 ...
DECADE ou DECADES

Amazon Redshift interprète DECADE ou DECADES DATEPART en fonction du calendrier courant. Par exemple, si le calendrier commun commence à partir de l’année 1, la première décennie (décennie 1) est 0001-01-01 jusqu’au 0009-12-31, et la deuxième décennie (décennie 2) du 0010-01-01 au 0019-12-31. Par exemple, la décennie 201 s’étend du 2000-01-01 au 2009-12-31 :

select extract(decade from timestamp '1999-02-16 20:38:40'); date_part ----------- 200 select extract(decade from timestamp '2000-02-16 20:38:40'); date_part ----------- 201 select extract(decade from timestamp '2010-02-16 20:38:40'); date_part ----------- 202
MIL ou MILS

Amazon Redshift interprète un MIL comme démarrant avec le premier jour de l’année #001 et se terminant par le dernier jour de l’année #000 :

select extract (mil from timestamp '2000-12-16 12:21:13'); date_part ----------- 2 select extract (mil from timestamp '2001-12-16 12:21:13'); date_part ----------- 3