Cloud Spanner SQL accepte les fonctions TIMESTAMP
suivantes.
REMARQUE : Ces fonctions renvoient une erreur d'exécution en cas de débordement. Les valeurs de résultat sont délimitées par les valeurs min/max définies pour la date et l'horodatage.
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP()
Description
CURRENT_TIMESTAMP()
produit une valeur TIMESTAMP continue, non ambiguë, qui comprend exactement 60 secondes par minute et ne répète pas les valeurs au-delà de la seconde intercalaire. Les parenthèses sont facultatives.
Cette fonction gère les sauts de secondes en les lissant sur une fenêtre de 20 heures autour de la seconde intercalaire insérée.
Types d'entrée acceptés
Non applicable
Type de données de résultat
TIMESTAMP
Exemples
SELECT CURRENT_TIMESTAMP() as now;
+--------------------------------+
| now |
+--------------------------------+
| 2020-06-02T23:58:40.347847393Z |
+--------------------------------+
Lorsqu'une colonne nommée current_timestamp
est présente, le nom de la colonne et l'appel de la fonction sans parenthèses sont ambigus. Pour garantir l'appel de la fonction, ajoutez des parenthèses. Pour garantir le nom de la colonne, qualifiez-la avec sa variable de plage. Par exemple, la requête suivante sélectionne la fonction dans la colonne now
et la colonne de table dans la colonne current_timestamp
.
WITH t AS (SELECT 'column value' AS `current_timestamp`)
SELECT current_timestamp() AS now, t.current_timestamp FROM t;
+--------------------------------+-------------------+
| now | current_timestamp |
+--------------------------------+-------------------+
| 2020-06-02T23:58:40.347847393Z | column value |
+--------------------------------+-------------------+
EXTRACT
EXTRACT(part FROM timestamp_expression [AT TIME ZONE timezone])
Description
Renvoie une valeur qui correspond à la valeur part
spécifiée à partir d'une expression timestamp_expression
fournie. Cette fonction accepte un paramètre facultatif, timezone
. Consultez la rubrique Définition de fuseaux horaires pour plus d'informations sur la spécification d'un fuseau horaire.
Les valeurs part
autorisées correspondent aux valeurs suivantes :
NANOSECOND
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAYOFWEEK
DAY
DAYOFYEAR
WEEK
: renvoie le numéro de semaine de la date (compris dans la plage [0, 53]). Les semaines commencent le dimanche et les dates antérieures au premier dimanche de l'année correspondent à la semaine 0.ISOWEEK
: renvoie le numéro de semaine ISO 8601 dedatetime_expression
. Les semainesISOWEEK
commencent le lundi. Les valeurs renvoyées sont comprises dans la plage [1, 53]. La première semaineISOWEEK
de chaque année ISO commence le lundi précédant le premier jeudi de l'année civile grégorienne.MONTH
QUARTER
YEAR
ISOYEAR
: renvoie l'année à numérotation de semaine conforme à l'ISO 8601, qui correspond à l'année grégorienne contenant le jeudi de la semaine à laquelledate_expression
appartient.DATE
Les valeurs renvoyées tronquent les périodes d'ordre inférieur. Par exemple, lors de l'extraction de secondes, EXTRACT
tronque les valeurs en millisecondes et en microsecondes.
Type de données renvoyé
INT64, sauf dans les cas suivants :
part
correspond àDATE
, renvoie un objetDATE
.
Exemples
Dans l'exemple suivant, EXTRACT
renvoie une valeur correspondant à l'élément de temps DAY
.
WITH Input AS (SELECT TIMESTAMP("2008-12-25 05:30:00+00") AS timestamp_value)
SELECT
EXTRACT(DAY FROM timestamp_value AT TIME ZONE "UTC") AS the_day_utc,
EXTRACT(DAY FROM timestamp_value AT TIME ZONE "America/Los_Angeles") AS the_day_california
FROM Input
+-------------+--------------------+
| the_day_utc | the_day_california |
+-------------+--------------------+
| 25 | 24 |
+-------------+--------------------+
Dans l'exemple suivant, EXTRACT
renvoie des valeurs correspondant à différentes parties de date d'une colonne d'horodatages.
WITH Timestamps AS (
SELECT TIMESTAMP("2005-01-03 12:34:56+00") AS timestamp_value UNION ALL
SELECT TIMESTAMP("2007-12-31 12:00:00+00") UNION ALL
SELECT TIMESTAMP("2009-01-01 12:00:00+00") UNION ALL
SELECT TIMESTAMP("2009-12-31 12:00:00+00") UNION ALL
SELECT TIMESTAMP("2017-01-02 12:00:00+00") UNION ALL
SELECT TIMESTAMP("2017-05-26 12:00:00+00")
)
SELECT
timestamp_value,
EXTRACT(ISOYEAR FROM timestamp_value) AS isoyear,
EXTRACT(ISOWEEK FROM timestamp_value) AS isoweek,
EXTRACT(YEAR FROM timestamp_value) AS year,
EXTRACT(WEEK FROM timestamp_value) AS week
FROM Timestamps
ORDER BY timestamp_value;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+---------+---------+------+------+
| timestamp_value | isoyear | isoweek | year | week |
+------------------------+---------+---------+------+------+
| 2005-01-03T12:34:56Z | 2005 | 1 | 2005 | 1 |
| 2007-12-31T12:00:00Z | 2008 | 1 | 2007 | 52 |
| 2009-01-01T12:00:00Z | 2009 | 1 | 2009 | 0 |
| 2009-12-31T12:00:00Z | 2009 | 53 | 2009 | 52 |
| 2017-01-02T12:00:00Z | 2017 | 1 | 2017 | 1 |
| 2017-05-26T12:00:00Z | 2017 | 21 | 2017 | 21 |
+------------------------+---------+---------+------+------+
STRING
STRING(timestamp_expression[, timezone])
Description
Convertit une expression timestamp_expression
en un type de données STRING. Cette fonction accepte un paramètre (facultatif) permettant de spécifier un fuseau horaire. Consultez la rubrique Définition de fuseaux horaires pour plus d'informations sur la spécification d'un fuseau horaire.
Type de données renvoyé
STRING
Exemple
SELECT STRING(TIMESTAMP "2008-12-25 15:30:00+00", "UTC") AS string;
+-------------------------------+
| string |
+-------------------------------+
| 2008-12-25 15:30:00+00 |
+-------------------------------+
TIMESTAMP
TIMESTAMP(string_expression[, timezone])
TIMESTAMP(date_expression[, timezone])
Description
string_expression[, timezone]
: convertit une expression STRING en un type de données TIMESTAMP.string_expression
doit inclure un littéral d'horodatage. Sistring_expression
inclut un fuseau horaire dans le littéral d'horodatage, n'incluez pas d'argumenttimezone
explicite.date_expression[, timezone]
: convertit un objet DATE en un type de données TIMESTAMP.
Cette fonction accepte un paramètre facultatif permettant de spécifier un fuseau horaire. Si aucun fuseau horaire n'est spécifié, le fuseau horaire par défaut (America/Los_Angeles) est utilisé.
Type de données renvoyé
TIMESTAMP
Exemples
SELECT TIMESTAMP("2008-12-25 15:30:00+00") AS timestamp_str;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+----------------------+
| timestamp_str |
+----------------------+
| 2008-12-25T15:30:00Z |
+----------------------+
SELECT TIMESTAMP("2008-12-25 15:30:00", "America/Los_Angeles") AS timestamp_str;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+----------------------+
| timestamp_str |
+----------------------+
| 2008-12-25T23:30:00Z |
+----------------------+
SELECT TIMESTAMP("2008-12-25 15:30:00 UTC") AS timestamp_str;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+----------------------+
| timestamp_str |
+----------------------+
| 2008-12-25T15:30:00Z |
+----------------------+
SELECT TIMESTAMP(DATE "2008-12-25") AS timestamp_date;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+----------------------+
| timestamp_date |
+----------------------+
| 2008-12-25T08:00:00Z |
+----------------------+
TIMESTAMP_ADD
TIMESTAMP_ADD(timestamp_expression, INTERVAL int64_expression date_part)
Description
Ajoute des unités int64_expression
de date_part
à l'horodatage, quel que soit le fuseau horaire.
TIMESTAMP_ADD
est compatible avec les valeurs suivantes pour date_part
:
NANOSECOND
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
. Équivaut à 60 minutes (MINUTE
).DAY
. Équivaut à 24 heures (HOUR
).
Type de données renvoyées
TIMESTAMP
Exemple
SELECT
TIMESTAMP("2008-12-25 15:30:00+00") AS original,
TIMESTAMP_ADD(TIMESTAMP "2008-12-25 15:30:00+00", INTERVAL 10 MINUTE) AS later;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+------------------------+
| original | later |
+------------------------+------------------------+
| 2008-12-25T15:30:00Z | 2008-12-25T15:40:00Z |
+------------------------+------------------------+
TIMESTAMP_SUB
TIMESTAMP_SUB(timestamp_expression, INTERVAL int64_expression date_part)
Description
Soustrait des unités int64_expression
de date_part
de l'horodatage, quel que soit le fuseau horaire.
TIMESTAMP_SUB
est compatible avec les valeurs suivantes pour date_part
:
NANOSECOND
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
. Équivaut à 60 minutes (MINUTE
).DAY
. Équivaut à 24 heures (HOUR
).
Type de données renvoyé
TIMESTAMP
Exemple
SELECT
TIMESTAMP("2008-12-25 15:30:00+00") AS original,
TIMESTAMP_SUB(TIMESTAMP "2008-12-25 15:30:00+00", INTERVAL 10 MINUTE) AS earlier;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+------------------------+
| original | earlier |
+------------------------+------------------------+
| 2008-12-25T15:30:00Z | 2008-12-25T15:20:00Z |
+------------------------+------------------------+
TIMESTAMP_DIFF
TIMESTAMP_DIFF(timestamp_expression_a, timestamp_expression_b, date_part)
Description
Renvoie le nombre d'intervalles date_part
entiers spécifiés entre deux objets TIMESTAMP
(timestamp_expression_a
– timestamp_expression_b
). Si la première expression TIMESTAMP
est antérieur à la seconde, le résultat est négatif. La fonction renvoie une erreur si le calcul excède le type du résultat, par exemple si la différence en nanosecondes entre les deux objets TIMESTAMP
dépasse une valeur INT64
.
TIMESTAMP_DIFF
est compatible avec les valeurs suivantes pour date_part
:
NANOSECOND
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
. Équivaut à 60 minutes (MINUTE
).DAY
. Équivaut à 24 heures (HOUR
).
Type de données renvoyé
INT64
Exemple
SELECT
TIMESTAMP("2010-07-07 10:20:00+00") AS later_timestamp,
TIMESTAMP("2008-12-25 15:30:00+00") AS earlier_timestamp,
TIMESTAMP_DIFF(TIMESTAMP "2010-07-07 10:20:00+00", TIMESTAMP "2008-12-25 15:30:00+00", HOUR) AS hours;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+------------------------+-------+
| later_timestamp | earlier_timestamp | hours |
+------------------------+------------------------+-------+
| 2010-07-07T10:20:00Z | 2008-12-25T15:30:00Z | 13410 |
+------------------------+------------------------+-------+
Dans l'exemple suivant, le premier horodatage se produit avant le deuxième, ce qui entraîne un résultat négatif.
SELECT TIMESTAMP_DIFF(TIMESTAMP "2018-08-14", TIMESTAMP "2018-10-14", DAY);
+---------------+
| negative_diff |
+---------------+
| -61 |
+---------------+
Dans cet exemple, le résultat est de 0, car seul le nombre d'intervalles HOUR
entiers spécifiés est inclus.
SELECT TIMESTAMP_DIFF("2001-02-01 01:00:00", "2001-02-01 00:00:01", HOUR)
+---------------+
| negative_diff |
+---------------+
| 0 |
+---------------+
TIMESTAMP_TRUNC
TIMESTAMP_TRUNC(timestamp_expression, date_part[, timezone])
Description
Tronque un horodatage selon le niveau de précision de date_part
.
TIMESTAMP_TRUNC
est compatible avec les valeurs suivantes pour date_part
:
NANOSECOND
MICROSECOND
MILLISECOND
SECOND
MINUTE
HOUR
DAY
WEEK
ISOWEEK
: tronquetimestamp_expression
à la limite de la semaine ISO 8601 précédente. Les semainesISOWEEK
commencent le lundi. La première semaineISOWEEK
de chaque année ISO englobe le premier jeudi de l'année civile grégorienne correspondante. Toutedate_expression
précédente sera tronquée au lundi précédent.MONTH
QUARTER
YEAR
ISOYEAR
: tronquetimestamp_expression
à la limite de l'année à numérotation de semaine ISO 8601 précédente. La limite d'année ISO est le lundi de la première semaine où le jeudi appartient à l'année civile grégorienne correspondante.
La fonction TIMESTAMP_TRUNC
est compatible avec un paramètre facultatif timezone
. Ce paramètre s'applique aux date_parts
suivants :
MINUTE
HOUR
DAY
WEEK
ISOWEEK
MONTH
QUARTER
YEAR
ISOYEAR
Utilisez ce paramètre si vous souhaitez utiliser un fuseau horaire différent de celui par défaut (America/Los_Angeles) dans le cadre de l'opération de troncation.
Lorsqu'une valeur TIMESTAMP
est tronquée à la minute (MINUTE
) ou à l'heure (HOUR
), TIMESTAMP_TRUNC
détermine l'heure civile de TIMESTAMP
dans le fuseau horaire spécifié (ou par défaut), et soustrait les minutes et les secondes (si l'horodatage est tronqué à l'heure) ou les secondes (s'il est tronqué à la minute) de cet horodatage TIMESTAMP
. Bien que cette méthode fournisse un résultat intuitif dans la plupart des cas, ce ne sera pas le cas lors du passage aux horaires d'été qui ne sont pas alignés sur l'heure.
Type de données renvoyées
TIMESTAMP
Exemples
SELECT
TIMESTAMP_TRUNC(TIMESTAMP "2008-12-25 15:30:00+00", DAY, "UTC") AS utc,
TIMESTAMP_TRUNC(TIMESTAMP "2008-12-25 15:30:00+00", DAY, "America/Los_Angeles") AS la;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+------------------------+
| utc | la |
+------------------------+------------------------+
| 2008-12-25T00:00:00Z | 2008-12-25T08:00:00Z |
+------------------------+------------------------+
Dans l'exemple suivant, le code d'origine timestamp_expression
date de l'année civile grégorienne 2015. Cependant, TIMESTAMP_TRUNC
avec la partie de date ISOYEAR
tronque timestamp_expression
au début de l'année ISO, et non de l'année civile grégorienne. Le premier jeudi de l'année civile 2015 était le 2015-01-01, donc l'année ISO 2015 commence le lundi précédent, soit le 2014-12-29.
Par conséquent, la limite de l'année ISO précédant l'expression timestamp_expression
2015-06-15 00:00:00 + 00 correspond à 2014-12-29.
SELECT
TIMESTAMP_TRUNC("2015-06-15 00:00:00+00", ISOYEAR) AS isoyear_boundary,
EXTRACT(ISOYEAR FROM TIMESTAMP "2015-06-15 00:00:00+00") AS isoyear_number;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+----------------+
| parsed | isoyear_number |
+------------------------+----------------+
| 2014-12-29T08:00:00Z | 2015 |
+------------------------+----------------+
FORMAT_TIMESTAMP
FORMAT_TIMESTAMP(format_string, timestamp[, timezone])
Description
Formate un horodatage en fonction de la chaîne de format format_string
spécifiée.
Consultez la section Éléments de format acceptés pour TIMESTAMP pour obtenir une liste des éléments de format acceptés par cette fonction.
Type de données renvoyées
STRING
Exemple
SELECT FORMAT_TIMESTAMP("%c", TIMESTAMP "2008-12-25 15:30:00+00", "UTC") AS formatted;
+--------------------------+
| formatted |
+--------------------------+
| Thu Dec 25 15:30:00 2008 |
+--------------------------+
SELECT FORMAT_TIMESTAMP("%b-%d-%Y", TIMESTAMP "2008-12-25 15:30:00+00") AS formatted;
+-------------+
| formatted |
+-------------+
| Dec-25-2008 |
+-------------+
SELECT FORMAT_TIMESTAMP("%b %Y", TIMESTAMP "2008-12-25 15:30:00+00")
AS formatted;
+-------------+
| formatted |
+-------------+
| Dec 2008 |
+-------------+
PARSE_TIMESTAMP
PARSE_TIMESTAMP(format_string, timestamp_string[, timezone])
Description
Convertit une représentation d'un horodatage sous forme de chaîne en objet TIMESTAMP
.
format_string
contient les éléments de format qui définissent le format de timestamp_string
. Chaque élément de timestamp_string
doit avoir un élément correspondant dans format_string
. L'emplacement de chaque élément dans format_string
doit correspondre à celui de chaque élément dans timestamp_string
.
-- This works because elements on both sides match.
SELECT PARSE_TIMESTAMP("%a %b %e %I:%M:%S %Y", "Thu Dec 25 07:30:00 2008")
-- This doesn't work because the year element is in different locations.
SELECT PARSE_TIMESTAMP("%a %b %e %Y %I:%M:%S", "Thu Dec 25 07:30:00 2008")
-- This doesn't work because one of the year elements is missing.
SELECT PARSE_TIMESTAMP("%a %b %e %I:%M:%S", "Thu Dec 25 07:30:00 2008")
-- This works because %c can find all matching elements in timestamp_string.
SELECT PARSE_TIMESTAMP("%c", "Thu Dec 25 07:30:00 2008")
La chaîne de format est entièrement compatible avec la plupart des éléments de format, à l'exception de %a
, %A
, %g
, %G
, %j
, %P
, %u
, %U
, %V
, %w
et %W
.
Lorsque vous utilisez PARSE_TIMESTAMP
, tenez compte des points suivants :
- Champs non spécifiés : tout champ non spécifié est initialisé à compter de
1970-01-01 00:00:00.0
. Cette valeur d'initialisation utilise le fuseau horaire spécifié par l'argument "time zone" de la fonction, si ce dernier est présent. Dans le cas contraire, la valeur d'initialisation utilise le fuseau horaire par défaut (America/Los_Angeles). Par exemple, si l'année n'est pas spécifiée, la valeur par défaut1970
est utilisée, et ainsi de suite. - Noms qui ne sont pas sensibles à la casse : les noms, tels que
Monday
,February
, etc., ne sont pas sensibles à la casse. - Espace blanc : un ou plusieurs espaces blancs consécutifs dans la chaîne de format correspondent à zéro ou plusieurs espaces blancs consécutifs dans la chaîne d'horodatage. En outre, les espaces blancs au début et à la fin de la chaîne d'horodatage sont toujours autorisés, même s'ils ne figurent pas dans la chaîne de format.
- Priorité de format : lorsque deux éléments de format (ou plus) se chevauchent (par exemple
%F
et%Y
affectent l'année), le dernier d'entre eux remplace généralement les précédents, à quelques exceptions près (consulter les descriptions de%s
,%C
et%y
).
Type de données renvoyé
TIMESTAMP
Exemple
SELECT PARSE_TIMESTAMP("%c", "Thu Dec 25 07:30:00 2008") AS parsed;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+
| parsed |
+------------------------+
| 2008-12-25T15:30:00Z |
+------------------------+
TIMESTAMP_SECONDS
TIMESTAMP_SECONDS(int64_expression)
Description
Interprète int64_expression
comme le nombre de secondes écoulées depuis 1970-01-01 00:00:00 UTC.
Type de données renvoyées
TIMESTAMP
Exemple
SELECT TIMESTAMP_SECONDS(1230219000) AS timestamp_value;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+
| timestamp_value |
+------------------------+
| 2008-12-25T15:30:00Z |
+------------------------+
TIMESTAMP_MILLIS
TIMESTAMP_MILLIS(int64_expression)
Description
Interprète int64_expression
comme le nombre de millisecondes écoulées depuis 1970-01-01 00:00:00 UTC.
Type de données renvoyées
TIMESTAMP
Exemple
SELECT TIMESTAMP_MILLIS(1230219000000) AS timestamp_value;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+
| timestamp_value |
+------------------------+
| 2008-12-25T15:30:00Z |
+------------------------+
TIMESTAMP_MICROS
TIMESTAMP_MICROS(int64_expression)
Description
Interprète int64_expression
comme le nombre de microsecondes écoulées depuis 1970-01-01 00:00:00 UTC.
Type de données renvoyées
TIMESTAMP
Exemple
SELECT TIMESTAMP_MICROS(1230219000000000) AS timestamp_value;
-- Results may differ, depending upon the environment and time zone where this query was executed.
+------------------------+
| timestamp_value |
+------------------------+
| 2008-12-25T15:30:00Z |
+------------------------+
UNIX_SECONDS
UNIX_SECONDS(timestamp_expression)
Description
Renvoie le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC (1970-01-01 00:00:00 UTC). Tronque les niveaux de précision plus élevés.
Type de données renvoyées
INT64
Exemple
SELECT UNIX_SECONDS(TIMESTAMP "2008-12-25 15:30:00+00") AS seconds;
+------------+
| seconds |
+------------+
| 1230219000 |
+------------+
UNIX_MILLIS
UNIX_MILLIS(timestamp_expression)
Description
Renvoie le nombre de millisecondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC (1970-01-01 00:00:00 UTC). Tronque les niveaux de précision plus élevés.
Type de données renvoyées
INT64
Exemple
SELECT UNIX_MILLIS(TIMESTAMP "2008-12-25 15:30:00+00") AS millis;
+---------------+
| millis |
+---------------+
| 1230219000000 |
+---------------+
UNIX_MICROS
UNIX_MICROS(timestamp_expression)
Description
Renvoie le nombre de microsecondes écoulées depuis 1970-01-01 00:00:00 UTC. Tronque les niveaux de précision plus élevés.
Type de données renvoyées
INT64
Exemple
SELECT UNIX_MICROS(TIMESTAMP "2008-12-25 15:30:00+00") AS micros;
+------------------+
| micros |
+------------------+
| 1230219000000000 |
+------------------+
PENDING_COMMIT_TIMESTAMP
PENDING_COMMIT_TIMESTAMP()
Description
Utilisez la fonction PENDING_COMMIT_TIMESTAMP()
dans une instruction LMD INSERT
ou UPDATE
pour écrire l'horodatage de commit en attente, c'est-à-dire l'horodatage de commit de l'écriture lors de la validation, dans une colonne de type TIMESTAMP
.
Cloud Spanner SQL sélectionne l'horodatage de commit lorsque la transaction est enregistrée. La fonction PENDING_COMMIT_TIMESTAMP
peut être utilisée comme valeur pour INSERT ou UPDATE uniquement dans une colonne possédant le type approprié. Elle ne peut pas être utilisée avec SELECT ou comme entrée dans une autre expression scalaire.
Type de données renvoyé
TIMESTAMP
Exemple
L'instruction LMD suivante met à jour la colonne LastUpdated
de la table Singers avec l'horodatage de commit.
UPDATE Performances SET LastUpdated = PENDING_COMMIT_TIMESTAMP()
WHERE SingerId=1 AND VenueId=2 AND EventDate="2015-10-21"
Éléments de format acceptés pour TIMESTAMP
Sauf indication contraire, les fonctions d'horodatage utilisant des chaînes de format acceptent les éléments suivants :
Élément de format | Description |
%A | Nom complet du jour de la semaine. |
%a | Nom du jour de la semaine sous forme abrégée. |
%B | Nom complet du mois. |
%b ou %h | Nom du mois sous forme abrégée. |
%C | Siècle (une année divisée par 100 et tronquée pour obtenir un entier) sous forme de nombre décimal (00-99). |
%c | Représentation de la date et de l'heure au format %a %b %e %T %Y. |
%D | Date au format %m/%d/%y. |
%d | Jour du mois sous forme de nombre décimal (01-31). |
%e | Jour du mois sous forme de nombre décimal (1-31) ; les valeurs à un seul chiffre (1-9) sont précédées d'une espace. |
%F | Date au format %Y-%m-%d. |
%G | Année ISO 8601 avec le siècle sous forme de nombre décimal. Chaque année ISO commence le lundi précédant le premier jeudi de l'année civile grégorienne Notez que %G et %Y peuvent produire des résultats différents près des limites de l'année grégorienne, où celle-ci et l'année ISO peuvent diverger. |
%g | Année ISO 8601 sans le siècle sous forme de nombre décimal (00-99). Chaque année ISO commence le lundi précédant le premier jeudi de l'année civile grégorienne. Notez que %g et %y peuvent produire des résultats différents près des limites de l'année grégorienne, où celle-ci et l'année ISO peuvent diverger. |
%H | Heure (format 24 heures) sous forme de nombre décimal (00-23). |
%I | Heure (format 12 heures) sous forme de nombre décimal (01-12). |
%j | Jour de l'année sous forme de nombre décimal (001-366). |
%k | Heure (format 24 heures) sous forme de nombre décimal (0-23) ; les valeurs à un seul chiffre sont précédées d'une espace. |
%l | Heure (format 12 heures) sous forme de nombre décimal (1-12) ; les valeurs à un seul chiffre sont précédées d'une espace. |
%M | Minutes sous forme de nombre décimal (00-59). |
%m | Mois sous forme de nombre décimal (01-12). |
%n | Caractère de nouvelle ligne. |
%P | am ou pm. |
%p | AM ou PM. |
%R | Heure au format %H:%M. |
%r | Heure au format 12 heures (avec notation AM/PM). |
%S | Secondes sous forme de nombre décimal (00-60). |
%s | Nombre de secondes écoulées depuis le 1970-01-01 00:00:00 UTC. Remplace systématiquement tous les autres éléments de format, indépendamment de l'endroit où %s apparaît dans la chaîne. Si plusieurs éléments %s apparaissent, le dernier est prioritaire. |
%T | Heure au format %H:%M:%S. |
%t | Caractère de tabulation. |
%U | Numéro de la semaine dans l'année (dimanche considéré comme premier jour de la semaine) sous forme de nombre décimal (00-53). |
%u | Jour de la semaine (lundi considéré comme premier jour de la semaine) sous forme de nombre décimal (1-7). |
%V | Numéro de la semaine ISO 8601 dans l'année (lundi considéré comme premier jour de la semaine) sous forme de nombre décimal (01-53). Si la semaine du 1er janvier compte quatre jours ou plus dans la nouvelle année, elle est considérée comme la semaine 1. Dans le cas contraire, elle est considérée comme semaine 53 de l'année précédente et la semaine qui suit est la semaine 1. |
%W | Numéro de la semaine dans l'année (lundi considéré comme premier jour de la semaine) sous forme de nombre décimal (00-53). |
%w | Jour de la semaine (dimanche considéré comme premier jour de la semaine) sous forme de nombre décimal (0-6). |
%X | Représentation de l'heure au format HH:MM:SS. |
%x | Représentation de la date au format MM/JJ/AA. |
%Y | Année (avec le siècle) sous forme de nombre décimal. |
%y | Année (sans le siècle) sous forme de nombre décimal (00-99), le premier zéro est facultatif. Peut être associé à %C. Si %C n'est pas spécifié, les années 00-68 correspondent aux années 2000, tandis que les années 69-99 correspondent aux années 1900. |
%Z | Nom du fuseau horaire. |
%z | Décalage par rapport au méridien d'origine, au format +HHMM ou -HHMM selon le cas. Les emplacements situés à l'est du méridien de Greenwich sont représentés par des valeurs positives. |
%% | Caractère % unique. |
%Ez | Fuseau horaire numérique compatible RFC 3339 (+HH:MM ou -HH:MM). |
%E#S | Secondes avec # chiffres de précision fractionnelle. |
%E*S | Secondes avec précision fractionnelle complète (littéral '*'). |
%E4Y | Année sous forme de nombre à quatre caractères (0001 … 9999). Notez que %Y produit autant de caractères que nécessaire pour un rendu complet de l'année. |
Définition de fuseaux horaires
Certaines fonctions de date et d'horodatage vous permettent d'ignorer le fuseau horaire par défaut et d'en spécifier un autre. Vous pouvez indiquer un fuseau horaire en indiquant son nom (par exemple, America/Los_Angeles
) ou le décalage de fuseau horaire par rapport à l'heure UTC (par exemple, -08).
Si vous choisissez d'utiliser un décalage de fuseau horaire, utilisez le format suivant :
(+|-)H[H][:M[M]]
Les horodatages suivants sont équivalents, car le décalage de fuseau horaire pour America/Los_Angeles
est de -08
pour la date et l'heure spécifiées.
SELECT UNIX_MILLIS(TIMESTAMP "2008-12-25 15:30:00 America/Los_Angeles") as millis;
SELECT UNIX_MILLIS(TIMESTAMP "2008-12-25 15:30:00-08:00") as millis;