Fonctions d'horodatage
| Nom | Description |
CURRENT_TIMESTAMP
|
Génère un TIMESTAMP correspondant à l'heure de la requête.
|
TIMESTAMP_TRUNC
|
Tronque une valeur TIMESTAMP selon un niveau de précision donné.
|
UNIX_MICROS_TO_TIMESTAMP
|
Convertit le nombre de microsecondes écoulées depuis 1970-01-01 00:00:00 UTC en TIMESTAMP.
|
UNIX_MILLIS_TO_TIMESTAMP
|
Convertit le nombre de millisecondes écoulées depuis le 1970-01-01 00:00:00 UTC en TIMESTAMP.
|
UNIX_SECONDS_TO_TIMESTAMP
|
Convertit le nombre de secondes écoulées depuis le 1970-01-01 00:00:00 UTC en TIMESTAMP.
|
TIMESTAMP_ADD
|
Ajoute un intervalle de temps à une TIMESTAMP
|
TIMESTAMP_SUB
|
Soustrait un intervalle de temps à une valeur TIMESTAMP.
|
TIMESTAMP_TO_UNIX_MICROS
|
Convertit une valeur TIMESTAMP en nombre de microsecondes depuis 1970-01-01 00:00:00 UTC.
|
TIMESTAMP_TO_UNIX_MILLIS
|
Convertit une valeur TIMESTAMP en nombre de millisecondes depuis 1970-01-01 00:00:00 UTC.
|
TIMESTAMP_TO_UNIX_SECONDS
|
Convertit un TIMESTAMP en nombre de secondes écoulées depuis le 1970-01-01 00:00:00 UTC.
|
CURRENT_TIMESTAMP
Syntaxe :
current_timestamp() -> TIMESTAMP
Description :
Obtient le code temporel au début de l'heure de la requête input (interprété comme le nombre de microsecondes écoulées depuis le 1970-01-01 00:00:00 UTC).
Cette valeur est stable dans une requête et sera toujours résolue avec la même valeur si elle est appelée plusieurs fois.
TIMESTAMP_TRUNC
Syntaxe :
timestamp_trunc(timestamp: TIMESTAMP, granularity: STRING[, timezone: STRING]) -> TIMESTAMP
Description :
Tronque un code temporel selon un niveau de précision donné.
L'argument granularity doit être une chaîne et l'un des suivants :
microsecondmillisecondsecondminutehourdayweekweek([weekday])monthquarteryearisoyear
Si l'argument timezone est fourni, la troncature sera basée sur les limites du calendrier du fuseau horaire donné (par exemple, la troncature au jour tronquera à minuit dans le fuseau horaire donné). La troncature tiendra compte du passage à l'heure d'été.
Si timezone n'est pas fourni, la troncature sera basée sur les limites du calendrier UTC.
L'argument timezone doit être une représentation de chaîne d'un fuseau horaire de la base de données tz, par exemple America/New_York. Vous pouvez également utiliser un horodatage personnalisé en spécifiant un décalage par rapport à GMT.
Exemples :
timestamp |
granularity |
timezone |
timestamp_trunc(timestamp, granularity, timezone) |
|---|---|---|---|
| 2000-01-01 10:20:30:123456 UTC | "second" | Non fourni | 2001-01-01 10:20:30 UTC |
| 1997-05-31 04:30:30 UTC | "day" | Non fourni | 1997-05-31 00:00:00 UTC |
| 1997-05-31 04:30:30 UTC | "day" | "America/Los_Angeles" | 1997-05-30 07:00:00 UTC |
| 2001-03-16 04:00:00 UTC | "week(friday) | Non fourni | 2001-03-16 00:00:00 UTC |
| 2001-03-23 04:00:00 UTC | "week(friday) | "America/Los_Angeles" | 2001-03-23 17:00:00 UTC |
| 2026-01-24 20:00:00 UTC | "month" | "GMT+06:32:43" | 2026-01-01T06:32:43 UTC |
UNIX_MICROS_TO_TIMESTAMP
Syntaxe :
unix_micros_to_timestamp(input: INT64) -> TIMESTAMP
Description :
Convertit input (interprété comme le nombre de microsecondes écoulées depuis 1970-01-01 00:00:00 UTC) en TIMESTAMP. Génère une error si input ne peut pas être converti en TIMESTAMP valide.
Exemples :
input |
unix_micros_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 UTC |
| 400123456L | 1970-01-01 00:06:40.123456 UTC |
| -1000000L | 1969-12-31 23:59:59 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtMicros") .unix_micros_to_timestamp() .as_("createdAtString") ) .execute() )
UNIX_MILLIS_TO_TIMESTAMP
Syntaxe :
unix_millis_to_timestamp(input: INT64) -> TIMESTAMP
Description :
Convertit input (interprété comme le nombre de millisecondes écoulées depuis 1970-01-01 00:00:00 UTC) en TIMESTAMP. Génère une error si input ne peut pas être converti en TIMESTAMP valide.
Exemples :
input |
unix_millis_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 UTC |
| 4000123L | 1970-01-01 01:06:40.123 UTC |
| -1000000L | 1969-12-31 23:43:20 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtMillis") .unix_millis_to_timestamp() .as_("createdAtString") ) .execute() )
UNIX_SECONDS_TO_TIMESTAMP
Syntaxe :
unix_seconds_to_timestamp(input: INT64) -> TIMESTAMP
Description :
Convertit input (interprété comme le nombre de secondes écoulées depuis 1970-01-01 00:00:00 UTC) en TIMESTAMP. Génère une error si input ne peut pas être converti en TIMESTAMP valide.
Exemples :
input |
unix_seconds_to_timestamp(input) |
|---|---|
| 0L | 1970-01-01 00:00:00 UTC |
| 60L | 1970-01-01 00:01:00 UTC |
| -300L | 1969-12-31 23:55:00 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().alias("createdAtString") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().alias("createdAtString") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("createdAtSeconds") .unix_seconds_to_timestamp() .as_("createdAtString") ) .execute() )
TIMESTAMP_ADD
Syntaxe :
timestamp_add(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
Description :
Ajoute un amount de unit à partir de timestamp. L'argument amount peut être négatif. Dans ce cas, il équivaut à TIMESTAMP_SUB.
L'argument unit doit être une chaîne et l'un des suivants :
microsecondmillisecondsecondminutehourday
Génère une erreur si l'horodatage obtenu ne correspond pas à la plage TIMESTAMP.
Exemples :
timestamp |
unit |
amount |
timestamp_add(timestamp, unit, amount) |
|---|---|---|---|
| 2025-02-20 00:00:00 UTC | "minute" | 2L | 2025-02-20 00:02:00 UTC |
| 2025-02-20 00:00:00 UTC | "hour" | -4L | 2025-02-19 20:00:00 UTC |
| 2025-02-20 00:00:00 UTC | "day" | 5L | 2025-02-25 00:00:00 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).as("expiresAt") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("createdAt").timestampAdd(3653, .day).as("expiresAt") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("createdAt") .timestampAdd("day", 3653) .alias("expiresAt") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).alias("expiresAt") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("createdAt").timestamp_add("day", 3653).as_("expiresAt")) .execute() )
TIMESTAMP_SUB
Syntaxe :
timestamp_sub(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
Description :
Soustrait une amount de unit à timestamp. L'argument amount peut être négatif. Dans ce cas, il équivaut à TIMESTAMP_ADD.
L'argument unit doit être une chaîne et l'un des suivants :
microsecondmillisecondsecondminutehourday
Génère une erreur si l'horodatage obtenu ne correspond pas à la plage TIMESTAMP.
Exemples :
timestamp |
unit |
amount |
timestamp_sub(timestamp, unit, amount) |
|---|---|---|---|
| 2026-07-04 00:00:00 UTC | "minute" | 40L | 2026-07-03 23:20:00 UTC |
| 2026-07-04 00:00:00 UTC | "hour" | -24L | 2026-07-05 00:00:00 UTC |
| 2026-07-04 00:00:00 UTC | "day" | 3L | 2026-07-01 00:00:00 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).as("sendWarningTimestamp") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("expiresAt").timestampSubtract(14, .day).as("sendWarningTimestamp") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("expiresAt") .timestampSubtract("day", 14) .alias("sendWarningTimestamp") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).alias("sendWarningTimestamp") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select( Field.of("expiresAt") .timestamp_subtract("day", 14) .as_("sendWarningTimestamp") ) .execute() )
TIMESTAMP_TO_UNIX_MICROS
Syntaxe :
timestamp_to_unix_micros(input: TIMESTAMP) -> INT64
Description :
Convertit input en nombre de microsecondes depuis 1970-01-01 00:00:00 UTC. Tronque les niveaux de précision plus élevés en arrondissant au début de la microseconde.
Exemples :
input |
timestamp_to_unix_micros(input) |
|---|---|
| 1970-01-01 00:00:00 UTC | 0L |
| 1970-01-01 00:06:40.123456 UTC | 400123456L |
| 1969-12-31 23:59:59 UTC | -1000000L |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().as("unixMicros") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixMicros().as("unixMicros") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().alias("unixMicros") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().alias("unixMicros") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_micros().as_("unixMicros")) .execute() )
TIMESTAMP_TO_UNIX_MILLIS
Syntaxe :
timestamp_to_unix_millis(input: TIMESTAMP) -> INT64
Description :
Convertit input en nombre de millisecondes écoulées depuis 1970-01-01 00:00:00 UTC. Tronque les niveaux de précision plus élevés en arrondissant au début de la milliseconde.
Exemples :
input |
timestamp_to_unix_millis(input) |
|---|---|
| 1970-01-01 00:00:00 UTC | 0L |
| 1970-01-01 01:06:40.123 UTC | 4000123L |
| 1969-12-31 23:43:20 | -1000000L |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().as("unixMillis") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixMillis().as("unixMillis") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().alias("unixMillis") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().alias("unixMillis") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_millis().as_("unixMillis")) .execute() )
TIMESTAMP_TO_UNIX_SECONDS
Syntaxe :
timestamp_to_unix_seconds(input: TIMESTAMP) -> INT64
Description :
Convertit input en nombre de secondes écoulées depuis le 1970-01-01 00:00:00 UTC. Tronque les niveaux de précision plus élevés en arrondissant au début de la seconde.
Exemples :
input |
timestamp_to_unix_seconds(input) |
|---|---|
| 1970-01-01 00:00:00 UTC | 0L |
| 1970-01-01 00:01:00 UTC | 60L |
| 1969-12-31 23:55:00 UTC | -300L |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().as("unixSeconds") ) );
Swift
let result = try await db.pipeline() .collection("documents") .select([ Field("dateString").timestampToUnixSeconds().as("unixSeconds") ]) .execute()
Kotlin
val result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().alias("unixSeconds") ) .execute()
Java
Task<Pipeline.Snapshot> result = db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().alias("unixSeconds") ) .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field result = ( client.pipeline() .collection("documents") .select(Field.of("dateString").timestamp_to_unix_seconds().as_("unixSeconds")) .execute() )