Zaman damgası işlevleri

Zaman Damgası İşlevleri

Ad Açıklama
CURRENT_TIMESTAMP İstek zamanına karşılık gelen bir TIMESTAMP oluşturur.
TIMESTAMP_TRUNC Bir TIMESTAMP değerini belirli bir ayrıntı düzeyine göre kısaltır.
UNIX_MICROS_TO_TIMESTAMP 1970-01-01 00:00:00 UTC tarihinden itibaren geçen mikro saniye sayısını TIMESTAMP biçimine dönüştürür.
UNIX_MILLIS_TO_TIMESTAMP 1970-01-01 00:00:00 UTC tarihinden itibaren geçen milisaniye sayısını TIMESTAMP biçimine dönüştürür.
UNIX_SECONDS_TO_TIMESTAMP 1970-01-01 00:00:00 UTC tarihinden itibaren geçen saniye sayısını TIMESTAMP biçimine dönüştürür.
TIMESTAMP_ADD TIMESTAMP tarihine zaman aralığı ekler.
TIMESTAMP_SUB TIMESTAMP tarihinden bir zaman aralığını çıkarır.
TIMESTAMP_TO_UNIX_MICROS TIMESTAMP değerini, 1970-01-01 00:00:00 UTC tarihinden itibaren geçen mikro saniye sayısına dönüştürür.
TIMESTAMP_TO_UNIX_MILLIS TIMESTAMP değerini, 1970-01-01 00:00:00 UTC tarihinden beri geçen milisaniye sayısına dönüştürür.
TIMESTAMP_TO_UNIX_SECONDS TIMESTAMP değerini, 1970-01-01 00:00:00 UTC tarihinden itibaren geçen saniye sayısına dönüştürür.

CURRENT_TIMESTAMP

Söz dizimi:

current_timestamp() -> TIMESTAMP

Açıklama:

İstek zamanının başlangıcındaki zaman damgasını alır input (1970-01-01 00:00:00 UTC tarihinden itibaren geçen mikrosaniye sayısı olarak yorumlanır).

Bu işlev, bir sorgu içinde sabittir ve birden çok kez çağrılırsa her zaman aynı değere çözümlenir.

TIMESTAMP_TRUNC

Söz dizimi:

timestamp_trunc(timestamp: TIMESTAMP, granularity: STRING[, timezone: STRING]) -> TIMESTAMP

Açıklama:

Zaman damgasını belirli bir ayrıntı düzeyine göre kısaltır.

granularity bağımsız değişkeni bir dize olmalı ve aşağıdakilerden biri olmalıdır:

  • microsecond
  • millisecond
  • second
  • minute
  • hour
  • day
  • week
  • week([weekday])
  • month
  • quarter
  • year
  • isoyear

timezone bağımsız değişkeni sağlanırsa kesme, belirtilen saat diliminin takvim sınırlarına göre yapılır (ör. gün kesmesi, belirtilen saat diliminde gece yarısına kadar keser). Kısaltma, yaz saati uygulamasına göre yapılır.

timezone belirtilmezse kısaltma işlemi UTC takvim sınırlarına göre yapılır.

timezone bağımsız değişkeni, tz veritabanındaki bir saat diliminin dize gösterimi olmalıdır (ör. America/New_York). GMT değerinden bir fark belirterek özel bir zaman farkı da kullanılabilir.

Örnekler:

timestamp granularity timezone timestamp_trunc(timestamp, granularity, timezone)
2000-01-01 10:20:30:123456 UTC "second" Belirtilmedi 2001-01-01 10:20:30 UTC
1997-05-31 04:30:30 UTC "day" Belirtilmedi 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) Belirtilmedi 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

Söz dizimi:

unix_micros_to_timestamp(input: INT64) -> TIMESTAMP

Açıklama:

input değerini (1970-01-01 00:00:00 UTC tarihinden itibaren geçen mikro saniye sayısı olarak yorumlanır) TIMESTAMP değerine dönüştürür. input, geçerli bir TIMESTAMP değerine dönüştürülemezse error oluşturur.

Örnekler:

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

Söz dizimi:

unix_millis_to_timestamp(input: INT64) -> TIMESTAMP

Açıklama:

input değerini (1970-01-01 00:00:00 UTC tarihinden itibaren geçen milisaniye sayısı olarak yorumlanır) TIMESTAMP değerine dönüştürür. input, geçerli bir TIMESTAMP değerine dönüştürülemezse error oluşturur.

Örnekler:

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

Söz dizimi:

unix_seconds_to_timestamp(input: INT64) -> TIMESTAMP

Açıklama:

input değerini (1970-01-01 00:00:00 UTC tarihinden itibaren geçen saniye sayısı olarak yorumlanır) TIMESTAMP değerine dönüştürür. input, geçerli bir TIMESTAMP değerine dönüştürülemezse error oluşturur.

Örnekler:

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

Söz dizimi:

timestamp_add(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP

Açıklama:

timestamp hizmetinden unit amount ekler. amount bağımsız değişkeni negatif olabilir. Bu durumda TIMESTAMP_SUB ile eşdeğerdir.

unit bağımsız değişkeni bir dize olmalı ve aşağıdakilerden biri olmalıdır:

  • microsecond
  • millisecond
  • second
  • minute
  • hour
  • day

Elde edilen zaman damgası TIMESTAMP aralığına uymuyorsa hata verir.

Örnekler:

timestamp unit amount timestamp_add(timestamp, unit, amount)
2025-02-20 00:00:00 UTC "minute" (dakika) 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

Söz dizimi:

timestamp_sub(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP

Açıklama:

amount, timestamp değerinden unit çıkarılır. amount bağımsız değişkeni negatif olabilir. Bu durumda TIMESTAMP_ADD ile eşdeğerdir.

unit bağımsız değişkeni bir dize olmalı ve aşağıdakilerden biri olmalıdır:

  • microsecond
  • millisecond
  • second
  • minute
  • hour
  • day

Elde edilen zaman damgası TIMESTAMP aralığına uymuyorsa hata verir.

Örnekler:

timestamp unit amount timestamp_sub(timestamp, unit, amount)
2026-07-04 00:00:00 UTC "minute" (dakika) 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

Söz dizimi:

timestamp_to_unix_micros(input: TIMESTAMP) -> INT64

Açıklama:

input değerini, 1970-01-01 00:00:00 UTC tarihinden itibaren geçen mikro saniye sayısına dönüştürür. Mikrosaniyenin başına yuvarlayarak daha yüksek hassasiyet düzeylerini keser.

Örnekler:

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

Söz dizimi:

timestamp_to_unix_millis(input: TIMESTAMP) -> INT64

Açıklama:

input değerini, 1970-01-01 00:00:00 UTC tarihinden bu yana geçen milisaniye sayısına dönüştürür. Milisaniyenin başına yuvarlayarak daha yüksek hassasiyet seviyelerini keser.

Örnekler:

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

Söz dizimi:

timestamp_to_unix_seconds(input: TIMESTAMP) -> INT64

Açıklama:

input değerini 1970-01-01 00:00:00 UTC tarihinden itibaren geçen saniye sayısına dönüştürür. Saniyelerin başına yuvarlayarak daha yüksek hassasiyet düzeylerini kısaltır.

Örnekler:

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()
)