Zeitstempelfunktionen
| Name | Beschreibung |
CURRENT_TIMESTAMP
|
Generiert einen TIMESTAMP, der dem Zeitpunkt der Anfrage entspricht.
|
TIMESTAMP_TRUNC
|
Kürzt einen TIMESTAMP-Wert auf einen bestimmten Detaillierungsgrad.
|
UNIX_MICROS_TO_TIMESTAMP
|
Konvertiert die Anzahl der Mikrosekunden seit 1970-01-01 00:00:00 UTC in einen TIMESTAMP.
|
UNIX_MILLIS_TO_TIMESTAMP
|
Konvertiert die Anzahl der Millisekunden seit 1970-01-01 00:00:00 UTC in einen TIMESTAMP.
|
UNIX_SECONDS_TO_TIMESTAMP
|
Wandelt die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC in einen TIMESTAMP um.
|
TIMESTAMP_ADD
|
Fügt einem TIMESTAMP ein Zeitintervall hinzu.
|
TIMESTAMP_SUB
|
Subtrahiert ein Zeitintervall von einem TIMESTAMP
|
TIMESTAMP_TO_UNIX_MICROS
|
Wandelt einen TIMESTAMP in die Anzahl der Mikrosekunden seit 1970-01-01 00:00:00 UTC um.
|
TIMESTAMP_TO_UNIX_MILLIS
|
Konvertiert einen TIMESTAMP in die Anzahl der Millisekunden seit 1970-01-01 00:00:00 UTC.
|
TIMESTAMP_TO_UNIX_SECONDS
|
Wandelt einen TIMESTAMP in die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC um.
|
CURRENT_TIMESTAMP
Syntax:
current_timestamp() -> TIMESTAMP
Beschreibung:
Ruft den Zeitstempel am Beginn der Anfragezeit input ab (interpretiert als Anzahl der Mikrosekunden seit 1970-01-01 00:00:00 UTC).
Dieser Wert ist innerhalb einer Abfrage stabil und wird immer in denselben Wert aufgelöst, wenn er mehrmals aufgerufen wird.
TIMESTAMP_TRUNC
Syntax:
timestamp_trunc(timestamp: TIMESTAMP, granularity: STRING[, timezone: STRING]) -> TIMESTAMP
Beschreibung:
Kürzt einen Zeitstempel auf eine bestimmte Granularität.
Das Argument granularity muss ein String und einer der folgenden Werte sein:
microsecondmillisecondsecondminutehourdayweekweek([weekday])monthquarteryearisoyear
Wenn das Argument timezone angegeben wird, erfolgt die Kürzung basierend auf den Kalendergrenzen der angegebenen Zeitzone (z.B. wird bei der Kürzung auf den Tag Mitternacht in der angegebenen Zeitzone verwendet). Die Kürzung berücksichtigt die Sommerzeit.
Wenn timezone nicht angegeben ist, erfolgt die Kürzung basierend auf den UTC-Kalendergrenzen.
Das Argument timezone sollte eine Stringdarstellung einer Zeitzone aus der tz-Datenbank sein, z. B. America/New_York. Sie können auch einen benutzerdefinierten Zeitversatz angeben, indem Sie einen Versatz von GMT festlegen.
Beispiele:
timestamp |
granularity |
timezone |
timestamp_trunc(timestamp, granularity, timezone) |
|---|---|---|---|
| 2000-01-01 10:20:30:123456 UTC | „second“ | Nicht bereitgestellt | 2001-01-01 10:20:30 UTC |
| 1997-05-31 04:30:30 UTC | „day“ | Nicht bereitgestellt | 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) | Nicht bereitgestellt | 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
Syntax:
unix_micros_to_timestamp(input: INT64) -> TIMESTAMP
Beschreibung:
Konvertiert input (interpretiert als Anzahl der Mikrosekunden seit 1970-01-01 00:00:00 UTC) in einen TIMESTAMP. Löst eine error aus, wenn input nicht in eine gültige TIMESTAMP konvertiert werden kann.
Beispiele:
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
Syntax:
unix_millis_to_timestamp(input: INT64) -> TIMESTAMP
Beschreibung:
Konvertiert input (interpretiert als Anzahl der Millisekunden seit 1970-01-01 00:00:00 UTC) in einen TIMESTAMP. Löst eine error aus, wenn input nicht in eine gültige TIMESTAMP konvertiert werden kann.
Beispiele:
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
Syntax:
unix_seconds_to_timestamp(input: INT64) -> TIMESTAMP
Beschreibung:
Wandelt input (interpretiert als Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC) in einen TIMESTAMP um. Löst eine error aus, wenn input nicht in eine gültige TIMESTAMP konvertiert werden kann.
Beispiele:
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
Syntax:
timestamp_add(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
Beschreibung:
Fügt ein amount von unit aus timestamp hinzu. Das Argument amount kann negativ sein. In diesem Fall entspricht es TIMESTAMP_SUB.
Das Argument unit muss ein String und einer der folgenden Werte sein:
microsecondmillisecondsecondminutehourday
Gibt einen Fehler aus, wenn der resultierende Zeitstempel nicht in den TIMESTAMP-Bereich passt.
Beispiele:
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 | „Stunde“ | –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
Syntax:
timestamp_sub(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
Beschreibung:
Subtrahiert einen amount von unit von timestamp. Das Argument amount kann negativ sein. In diesem Fall entspricht es TIMESTAMP_ADD.
Das Argument unit muss ein String und einer der folgenden Werte sein:
microsecondmillisecondsecondminutehourday
Gibt einen Fehler aus, wenn der resultierende Zeitstempel nicht in den TIMESTAMP-Bereich passt.
Beispiele:
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 | „Stunde“ | -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
Syntax:
timestamp_to_unix_micros(input: TIMESTAMP) -> INT64
Beschreibung:
Wandelt input in die Anzahl der Mikrosekunden seit 1970-01-01 00:00:00 UTC um. Nachkommastellen werden durch das Abrunden auf den Anfang der Mikrosekunde abgeschnitten.
Beispiele:
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
Syntax:
timestamp_to_unix_millis(input: TIMESTAMP) -> INT64
Beschreibung:
Konvertiert input in die Anzahl der Millisekunden seit 1970-01-01 00:00:00 UTC. Nachkommastellen werden durch das Abrunden auf den Anfang der Millisekunde abgeschnitten.
Beispiele:
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
Syntax:
timestamp_to_unix_seconds(input: TIMESTAMP) -> INT64
Beschreibung:
Wandelt input in die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC um. Nachkommastellen werden durch das Abrunden auf den Anfang der Sekunde abgeschnitten.
Beispiele:
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() )