Fonctions TIME en langage SQL standard

BigQuery accepte les fonctions TIME suivantes :

CURRENT_TIME

CURRENT_TIME()

Description

Renvoie l'heure actuelle en tant qu'objet TIME.

Type de données renvoyé

TIME

Exemple

SELECT CURRENT_TIME() as now;

+----------------------------+
| now                        |
+----------------------------+
| 15:31:38.776361            |
+----------------------------+

TIME

1. TIME(hour, minute, second)
2. TIME(timestamp, [timezone])
3. TIME(datetime)

Description

  1. Construit un objet TIME à partir de valeurs INT64 représentant l'heure, la minute et la seconde.
  2. Construit un objet TIME à l'aide d'un objet 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, UTC, est utilisé.
  3. Construit un objet TIME à l'aide d'un objet DATETIME.

Type de données renvoyé

TIME

Exemple

SELECT
  TIME(15, 30, 00) as time_hms,
  TIME(TIMESTAMP "2008-12-25 15:30:00+08", "America/Los_Angeles") as time_tstz;
+----------+-----------+
| time_hms | time_tstz |
+----------+-----------+
| 15:30:00 | 23:30:00  |
+----------+-----------+
SELECT
  TIME(DATETIME "2008-12-25 15:30:00.000000") AS time_dt;
+----------+
| time_dt  |
+----------+
| 15:30:00 |
+----------+

TIME_ADD

TIME_ADD(time_expression, INTERVAL INT64_expr part)

Description

Ajoute les unités INT64_expr de part à l'objet TIME.

TIME_ADD accepte les valeurs suivantes pour part :

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Cette fonction s'ajuste automatiquement lorsque les valeurs ne sont pas comprises entre 00:00:00 et 24:00:00. Par exemple, si vous ajoutez une heure à 23:30:00, la valeur renvoyée est 00:30:00.

Types de données renvoyés

TIME

Exemple

SELECT
  TIME "15:30:00" as original_time,
  TIME_ADD(TIME "15:30:00", INTERVAL 10 MINUTE) as later;

+-----------------------------+------------------------+
| original_time               | later                  |
+-----------------------------+------------------------+
| 15:30:00                    | 15:40:00               |
+-----------------------------+------------------------+

TIME_SUB

TIME_SUB(time_expression, INTERVAL INT_expr part)

Description

Soustrait les unités INT64_expr de part de l'objet TIME.

TIME_SUB accepte les valeurs suivantes pour part :

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Cette fonction s'ajuste automatiquement lorsque les valeurs ne sont pas comprises entre 00:00:00 et 24:00:00. Par exemple, si vous soustrayez une heure de 00:30:00, la valeur renvoyée est 23:30:00.

Type de données renvoyé

TIME

Exemple

SELECT
  TIME "15:30:00" as original_date,
  TIME_SUB(TIME "15:30:00", INTERVAL 10 MINUTE) as earlier;

+-----------------------------+------------------------+
| original_date                | earlier                |
+-----------------------------+------------------------+
| 15:30:00                    | 15:20:00               |
+-----------------------------+------------------------+

TIME_DIFF

TIME_DIFF(time_expression, time_expression, part)

Description

Renvoie le nombre d'intervalles part entiers spécifiés entre deux objets TIME. La fonction renvoie une erreur si le calcul excède le type du résultat, par exemple si la différence en microsecondes entre les deux objets TIME dépasse une valeur INT64.

TIME_DIFF accepte les valeurs suivantes pour part :

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Type de données renvoyé

INT64

Exemple

SELECT
  TIME "15:30:00" as first_time,
  TIME "14:35:00" as second_time,
  TIME_DIFF(TIME "15:30:00", TIME "14:35:00", MINUTE) as difference;

+----------------------------+------------------------+------------------------+
| first_time                 | second_time            | difference             |
+----------------------------+------------------------+------------------------+
| 15:30:00                   | 14:35:00               | 55                     |
+----------------------------+------------------------+------------------------+

TIME_TRUNC

TIME_TRUNC(time_expression, part)

Description

Tronque un objet TIME selon le niveau de précision de part.

TIME_TRUNC accepte les valeurs suivantes pour part :

  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR

Type de données renvoyé

TIME

Exemple

SELECT
  TIME "15:30:00" as original,
  TIME_TRUNC(TIME "15:30:00", HOUR) as truncated;

+----------------------------+------------------------+
| original                   | truncated              |
+----------------------------+------------------------+
| 15:30:00                   | 15:00:00               |
+----------------------------+------------------------+

FORMAT_TIME

FORMAT_TIME(format_string, time_object)

Description Formate un objet TIME en fonction du paramètre format_string spécifié. Consultez la section Éléments de format acceptés pour TIME pour obtenir une liste des éléments de format acceptés par cette fonction.

Type de données renvoyé

STRING

Exemple

SELECT FORMAT_TIME("%R", TIME "15:30:00") as formatted_time;

+----------------+
| formatted_time |
+----------------+
| 15:30          |
+----------------+

PARSE_TIME

PARSE_TIME(format_string, string)

Description

Utilise un paramètre format_string et une chaîne pour renvoyer un objet TIME. Consultez la section Éléments de format acceptés pour TIME pour obtenir une liste des éléments de format acceptés par cette fonction.

Lorsque vous utilisez PARSE_TIME, tenez compte des points suivants :

  • Champs non spécifiés : tout champ non spécifié est initialisé à compter de 00:00:00.0. Par exemple, si aucune valeur n'est spécifiée pour seconds, la valeur par défaut est 00, etc.
  • Espace blanc : un ou plusieurs espaces blancs consécutifs dans la chaîne de format correspondent à zéro, un ou plusieurs espaces blancs consécutifs dans la chaîne TIME. En outre, les espaces blancs au début et à la fin de la chaîne TIME sont toujours autorisés, même s'ils ne figurent pas dans la chaîne de format.
  • Priorité de format : lorsqu'au moins deux éléments de format incluent des informations qui se chevauchent, le dernier d'entre eux remplace généralement les éléments précédents.

Type de données renvoyé

TIME

Exemple

SELECT PARSE_TIME("%H", "15") as parsed_time;

+-------------+
| parsed_time |
+-------------+
| 15:00:00    |
+-------------+

Éléments de format acceptés pour TIME

Sauf indication contraire, les fonctions TIME utilisant des chaînes de format acceptent les éléments suivants :

Élément de format Description
%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).
%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).
%T Heure au format %H:%M:%S.
%t Caractère de tabulation.
%X Représentation de l'heure au format HH:MM:SS.
%% Caractère % unique.
%E#S Secondes avec # chiffres de précision fractionnelle.
%E*S Secondes avec précision fractionnelle complète (littéral '*').
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.