توابع مهر زمانی
| نام | توضیحات |
CURRENT_TIMESTAMP | یک TIMESTAMP مربوط به زمان درخواست تولید میکند. |
TIMESTAMP_TRUNC | یک TIMESTAMP به یک جزئیات مشخص کوتاه میکند. |
UNIX_MICROS_TO_TIMESTAMP | تعداد میکروثانیهها از 1970-01-01 00:00:00 UTC را به TIMESTAMP تبدیل میکند. |
UNIX_MILLIS_TO_TIMESTAMP | تعداد میلیثانیهها از 1970-01-01 00:00:00 UTC را به TIMESTAMP تبدیل میکند. |
UNIX_SECONDS_TO_TIMESTAMP | تعداد ثانیهها از 1970-01-01 00:00:00 UTC را به TIMESTAMP تبدیل میکند. |
TIMESTAMP_ADD | یک بازه زمانی به TIMESTAMP اضافه میکند. |
TIMESTAMP_SUB | یک بازه زمانی را از TIMESTAMP کم میکند. |
TIMESTAMP_TO_UNIX_MICROS | تابع TIMESTAMP تعداد میکروثانیههای سپری شده از 1970-01-01 00:00:00 UTC را به آن تبدیل میکند. |
TIMESTAMP_TO_UNIX_MILLIS | تابع TIMESTAMP تعداد میلی ثانیه های سپری شده از 1970-01-01 00:00:00 UTC را به آن تبدیل می کند. |
TIMESTAMP_TO_UNIX_SECONDS | تابع TIMESTAMP تعداد ثانیهها از 1970-01-01 00:00:00 UTC را به آن تبدیل میکند. |
مهر زمان فعلی
نحو:
current_timestamp() -> TIMESTAMP
شرح:
مهر زمانی را در ابتدای input زمان درخواست دریافت میکند (که به صورت تعداد میکروثانیهها از 1970-01-01 00:00:00 UTC تفسیر میشود).
این در یک پرس و جو پایدار است و اگر چندین بار فراخوانی شود، همیشه به همان مقدار برمیگردد.
مهر زمانی_TRUNC
نحو:
timestamp_trunc(timestamp: TIMESTAMP, granularity: STRING[, timezone: STRING]) -> TIMESTAMP
شرح:
یک مهر زمانی را تا جزئیات مشخص شده کوتاه میکند.
آرگومان granularity باید یک رشته و یکی از موارد زیر باشد:
-
microsecond -
millisecond -
second -
minute -
hour -
day -
week -
week([weekday]) -
month -
quarter -
year -
isoyear
اگر آرگومان timezone ارائه شود، کوتاهسازی بر اساس مرزهای تقویم منطقه زمانی داده شده انجام خواهد شد (مثلاً کوتاهسازی روز در منطقه زمانی داده شده تا نیمهشب کوتاه میشود). این کوتاهسازی با توجه به زمان تابستانی انجام میشود.
اگر timezone ارائه نشود، کوتاهسازی بر اساس مرزهای تقویم UTC انجام خواهد شد.
آرگومان timezone باید یک نمایش رشتهای از یک منطقه زمانی از پایگاه داده tz باشد، برای مثال America/New_York . همچنین میتوان با مشخص کردن یک انحراف از GMT ، از یک انحراف زمانی سفارشی استفاده کرد.
مثالها:
timestamp | granularity | timezone | timestamp_trunc(timestamp, granularity, timezone) |
|---|---|---|---|
| ۲۰۰۰-۰۱-۰۱ ۱۰:۲۰:۳۰:۱۲۳۴۵۶ UTC | «دوم» | ارائه نشده است | ۲۰۰۱-۰۱-۰۱ ۱۰:۲۰:۳۰ UTC |
| ۳۱-۰۵-۱۹۹۷ ساعت ۰۴:۳۰:۳۰ به وقت جهانی | «روز» | ارائه نشده است | ۱۹۹۷-۰۵-۳۱ ۰۰:۰۰:۰۰ UTC |
| ۳۱-۰۵-۱۹۹۷ ساعت ۰۴:۳۰:۳۰ به وقت جهانی | «روز» | «آمریکا/لسآنجلس» | ۱۹۹۷-۰۵-۳۰ ۰۷:۰۰:۰۰ UTC |
| 2001-03-16 ساعت 04:00:00 UTC | "هفته (جمعه) | ارائه نشده است | 2001-03-16 ساعت ۰۰:۰۰:۰۰ UTC |
| ۲۳ مارس ۲۰۰۱ ساعت ۰۴:۰۰:۰۰ به وقت جهانی | "هفته (جمعه) | «آمریکا/لسآنجلس» | ۲۳ مارس ۲۰۰۱ ۱۷:۰۰:۰۰ به وقت جهانی |
| ۲۴-۰۱-۲۰۲۶ ساعت ۲۰:۰۰:۰۰ به وقت جهانی | «ماه» | «به وقت گرینویچ+۰۶:۳۲:۴۳» | ۲۰۲۶-۰۱-۰۱T۰۶:۳۲:۴۳ UTC |
UNIX_MICROS_TO_TIMESTAMP
نحو:
unix_micros_to_timestamp(input: INT64) -> TIMESTAMP
شرح:
input (که به صورت تعداد میکروثانیهها از 1970-01-01 00:00:00 UTC تفسیر میشود) را به یک TIMESTAMP تبدیل میکند. اگر input نتواند به یک TIMESTAMP معتبر تبدیل شود، error میدهد.
مثالها:
input | unix_micros_to_timestamp(input) |
|---|---|
| 0 لیتر | ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC |
| ۴۰۰۱۲۳۴۵۶L | ۱۹۷۰-۰۱-۰۱ ۰۰:۰۶:۴۰.۱۲۳۴۵۶ UTC |
| -1000000 لیتر | ۱۹۶۹-۱۲-۳۱ ۲۳:۵۹:۵۹ UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMicros").unixMicrosToTimestamp().as("createdAtString") ) );
سویفت
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();
پایتون
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
نحو:
unix_millis_to_timestamp(input: INT64) -> TIMESTAMP
شرح:
input (که به صورت تعداد میلیثانیهها از 1970-01-01 00:00:00 UTC تفسیر میشود) را به یک TIMESTAMP تبدیل میکند. اگر input نتواند به یک TIMESTAMP معتبر تبدیل شود، error میدهد.
مثالها:
input | unix_millis_to_timestamp(input) |
|---|---|
| 0 لیتر | ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC |
| ۴۰۰۰۱۲۳ لیتر | ۱۹۷۰-۰۱-۰۱ ۰۱:۰۶:۴۰.۱۲۳ UTC |
| -1000000 لیتر | ۱۹۶۹-۱۲-۳۱ ۲۳:۴۳:۲۰ UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtMillis").unixMillisToTimestamp().as("createdAtString") ) );
سویفت
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();
پایتون
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
نحو:
unix_seconds_to_timestamp(input: INT64) -> TIMESTAMP
شرح:
input (که به صورت تعداد ثانیهها از 1970-01-01 00:00:00 UTC تفسیر میشود) را به یک TIMESTAMP تبدیل میکند. اگر input نتواند به یک TIMESTAMP معتبر تبدیل شود، error میدهد.
مثالها:
input | unix_seconds_to_timestamp(input) |
|---|---|
| 0 لیتر | ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC |
| ۶۰ لیتر | ۱۹۷۰-۰۱-۰۱ ۰۰:۰۱:۰۰ UTC |
| -300 لیتر | ۱۹۶۹-۱۲-۳۱ ۲۳:۵۵:۰۰ UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAtSeconds").unixSecondsToTimestamp().as("createdAtString") ) );
سویفت
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();
پایتون
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(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
شرح:
amount از unit timestamp را اضافه میکند. آرگومان amount میتواند منفی باشد، در این صورت معادل TIMESTAMP_SUB خواهد بود.
آرگومان unit باید یک رشته و یکی از موارد زیر باشد:
-
microsecond -
millisecond -
second -
minute -
hour -
day
اگر برچسب زمانی حاصل در محدوده TIMESTAMP قرار نگیرد، خطا میدهد.
مثالها:
timestamp | unit | amount | timestamp_add(timestamp, unit, amount) |
|---|---|---|---|
| ۲۰۲۵-۰۲-۲۰ ساعت ۰۰:۰۰:۰۰ به وقت جهانی | "دقیقه" | ۲ لیتر | ۲۰۲۵-۰۲-۲۰ ساعت ۰۰:۰۲:۰۰ به وقت جهانی |
| ۲۰۲۵-۰۲-۲۰ ساعت ۰۰:۰۰:۰۰ به وقت جهانی | «ساعت» | -4 لیتر | ۲۰۲۵-۰۲-۱۹ ساعت ۲۰:۰۰:۰۰ به وقت جهانی |
| ۲۰۲۵-۰۲-۲۰ ساعت ۰۰:۰۰:۰۰ به وقت جهانی | «روز» | ۵ لیتر | 2025-02-25 00:00:00 UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("createdAt").timestampAdd("day", 3653).as("expiresAt") ) );
سویفت
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();
پایتون
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(timestamp: TIMESTAMP, unit: STRING, amount: INT64) -> TIMESTAMP
شرح:
amount بر حسب unit را از timestamp کم میکند. آرگومان amount میتواند منفی باشد، در این صورت معادل TIMESTAMP_ADD خواهد بود.
آرگومان unit باید یک رشته و یکی از موارد زیر باشد:
-
microsecond -
millisecond -
second -
minute -
hour -
day
اگر برچسب زمانی حاصل در محدوده TIMESTAMP قرار نگیرد، خطا میدهد.
مثالها:
timestamp | unit | amount | timestamp_sub(timestamp, unit, amount) |
|---|---|---|---|
| 2026-07-04 00:00:00 UTC | "دقیقه" | ۴۰ لیتر | 2026-07-03 23:20:00 UTC |
| 2026-07-04 00:00:00 UTC | «ساعت» | -24 لیتر | 2026-07-05 00:00:00 UTC |
| 2026-07-04 00:00:00 UTC | «روز» | ۳ لیتر | ۲۰۲۶-۰۷-۰۱ ۰۰:۰۰:۰۰ UTC |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("expiresAt").timestampSubtract("day", 14).as("sendWarningTimestamp") ) );
سویفت
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();
پایتون
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(input: TIMESTAMP) -> INT64
شرح:
input به تعداد میکروثانیهها از 1970-01-01 00:00:00 UTC تبدیل میکند. سطوح بالاتر دقت را با گرد کردن به ابتدای میکروثانیه، کوتاه میکند.
مثالها:
input | timestamp_to_unix_micros(input) |
|---|---|
| ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC | 0 لیتر |
| ۱۹۷۰-۰۱-۰۱ ۰۰:۰۶:۴۰.۱۲۳۴۵۶ UTC | ۴۰۰۱۲۳۴۵۶L |
| ۱۹۶۹-۱۲-۳۱ ۲۳:۵۹:۵۹ UTC | -1000000 لیتر |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMicros().as("unixMicros") ) );
سویفت
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();
پایتون
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(input: TIMESTAMP) -> INT64
شرح:
input به تعداد میلیثانیهها از 1970-01-01 00:00:00 UTC تبدیل میکند. سطوح بالاتر دقت را با گرد کردن به ابتدای میلیثانیه، کوتاه میکند.
مثالها:
input | timestamp_to_unix_millis(input) |
|---|---|
| ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC | 0 لیتر |
| ۱۹۷۰-۰۱-۰۱ ۰۱:۰۶:۴۰.۱۲۳ UTC | ۴۰۰۰۱۲۳ لیتر |
| ۱۹۶۹-۱۲-۳۱ ۲۳:۴۳:۲۰ | -1000000 لیتر |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixMillis().as("unixMillis") ) );
سویفت
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();
پایتون
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(input: TIMESTAMP) -> INT64
شرح:
input به تعداد ثانیهها از 1970-01-01 00:00:00 UTC تبدیل میکند. سطوح بالاتر دقت را با گرد کردن به ابتدای ثانیه به پایین، کوتاه میکند.
مثالها:
input | timestamp_to_unix_seconds(input) |
|---|---|
| ۱۹۷۰-۰۱-۰۱ ۰۰:۰۰:۰۰ UTC | 0 لیتر |
| ۱۹۷۰-۰۱-۰۱ ۰۰:۰۱:۰۰ UTC | ۶۰ لیتر |
| ۱۹۶۹-۱۲-۳۱ ۲۳:۵۵:۰۰ UTC | -300 لیتر |
Web
const result = await execute(db.pipeline() .collection("documents") .select( field("dateString").timestampToUnixSeconds().as("unixSeconds") ) );
سویفت
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();
پایتون
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() )