الانتقال إلى المحتوى الرئيسي
تقبل معظم الدوال في هذا القسم وسيطة اختيارية للمنطقة الزمنية، مثل Europe/Amsterdam. وفي هذه الحالة، تكون المنطقة الزمنية المستخدمة هي المنطقة المحددة بدلًا من المنطقة الزمنية المحلية (الافتراضية). مثال
SELECT
    toDateTime('2016-06-15 23:00:00') AS time,
    toDate(time) AS date_local,
    toDate(time, 'Asia/Yekaterinburg') AS date_yekat,
    toString(time, 'US/Samoa') AS time_samoa
┌────────────────time─┬─date_local─┬─date_yekat─┬─time_samoa──────────┐
│ 2016-06-15 23:00:00 │ 2016-06-15 │ 2016-06-16 │ 2016-06-15 09:00:00 │
└─────────────────────┴────────────┴────────────┴─────────────────────┘
لتحقيق التوافق مع معيار SQL، يمكن استخدام الدوال التالية دون أقواس: NOW وCURRENT_TIMESTAMP وLOCALTIME وLOCALTIMESTAMP وTODAY وCURRENT_DATE.

UTCTimestamp

أُضيف في: v22.11.0 يعيد التاريخ والوقت الحاليَّين في لحظة تحليل الاستعلام. وهذه الدالة عبارة عن تعبير ثابت. تعطي هذه الدالة النتيجة نفسها التي تعطيها now('UTC'). وقد أُضيفت فقط لدعم MySQL. ويُعد now الخيار المفضّل. الصياغة
UTCTimestamp()
الأسماء المستعارة: UTC_timestamp المعاملات
  • لا يوجد.
القيمة المُعادة تعيد التاريخ والوقت الحاليين عند لحظة تحليل الاستعلام. DateTime أمثلة الحصول على الطابع الزمني الحالي بتوقيت UTC
Query
SELECT UTCTimestamp()
Response
┌──────UTCTimestamp()─┐
│ 2024-05-28 08:32:09 │
└─────────────────────┘

YYYYMMDDToDate

أُضيف في: v23.9.0 يحوّل رقمًا يتضمن السنة والشهر واليوم إلى Date. هذه الدالة هي عكس الدالة toYYYYMMDD(). تكون النتيجة غير معرّفة إذا كان الإدخال لا يمثّل قيمة Date صالحة. البنية
YYYYMMDDToDate(YYYYMMDD)
الوسائط
  • YYYYMMDD — رقم يتضمن السنة والشهر واليوم. (U)Int* أو Float* أو Decimal
القيمة المُعادة يُرجع قيمة من نوع Date من الوسائط المقدَّمة Date أمثلة مثال
Query
SELECT YYYYMMDDToDate(20230911);
Response
┌─toYYYYMMDD(20230911)─┐
│           2023-09-11 │
└──────────────────────┘

YYYYMMDDToDate32

أُضيف في: v23.9.0 يحوِّل رقمًا يتضمن السنة والشهر واليوم إلى Date32. هذه الدالة هي عكس الدالة toYYYYMMDD(). يكون الناتج غير معرّف إذا لم يُشفِّر الإدخال قيمة Date32 صالحة. الصيغة
YYYYMMDDToDate32(YYYYMMDD)
الوسائط
  • YYYYMMDD — رقم يحتوي على السنة والشهر واليوم. (U)Int* أو Float* أو Decimal
القيمة المُعادة تُرجِع قيمة Date32 من الوسائط المُدخلة Date32 أمثلة مثال
Query
SELECT YYYYMMDDToDate32(20000507);
Response
┌─YYYYMMDDToDate32(20000507)─┐
│                 2000-05-07 │
└────────────────────────────┘

YYYYMMDDhhmmssToDateTime

أُضيفت في: v23.9.0 تحوّل رقمًا يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية إلى DateTime. هذه الدالة هي عكس الدالة toYYYYMMDDhhmmss(). يكون الناتج غير معرّف إذا كان الإدخال لا يمثّل قيمة DateTime صالحة. البنية
YYYYMMDDhhmmssToDateTime(YYYYMMDDhhmmss[, timezone])
الوسائط
  • YYYYMMDDhhmmss — رقم يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية. (U)Int* أو Float* أو Decimal
  • timezone — اسم المنطقة الزمنية. String
القيمة المعادة تُرجع قيمة DateTime من الوسائط المحددة DateTime أمثلة مثال
Query
SELECT YYYYMMDDToDateTime(20230911131415);
Response
┌──────YYYYMMDDhhmmssToDateTime(20230911131415)─┐
│                           2023-09-11 13:14:15 │
└───────────────────────────────────────────────┘

YYYYMMDDhhmmssToDateTime64

أُضيفت في: v23.9.0 تحوّل رقمًا يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية إلى DateTime64. هذه الدالة هي عكس الدالة toYYYYMMDDhhmmss(). يكون الناتج غير معرّف إذا كان الإدخال لا يرمّز قيمة DateTime64 صالحة. الصيغة
YYYYMMDDhhmmssToDateTime64(YYYYMMDDhhmmss[, precision[, timezone]])
المعاملات
  • YYYYMMDDhhmmss — رقم يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية. (U)Int* أو Float* أو Decimal
  • precision — دقة الجزء الكسري (0-9). UInt8
  • timezone — اسم المنطقة الزمنية. String
القيمة المُعادة تعيد قيمة DateTime64 من المعاملات المحددة DateTime64 أمثلة مثال
Query
SELECT YYYYMMDDhhmmssToDateTime64(20230911131415, 3, 'Asia/Istanbul');
Response
┌─YYYYMMDDhhmm⋯/Istanbul')─┐
│  2023-09-11 13:14:15.000 │
└──────────────────────────┘

addDate

أُضيف في: v23.9.0 يضيف الفاصل الزمني إلى التاريخ المُقدَّم، أو التاريخ مع الوقت، أو التاريخ أو التاريخ مع الوقت المُمثَّل كسلسلة نصية. إذا أسفرت الإضافة عن قيمة تقع خارج حدود نوع البيانات، فستكون النتيجة غير معرّفة. الصيغة
addDate(datetime, interval)
المعاملات
  • datetime — التاريخ أو التاريخ مع الوقت الذي يُضاف إليه interval. Date أو Date32 أو DateTime أو DateTime64 أو String
  • interval — الفترة الزمنية المراد إضافتها. Interval
القيمة المُعادة تُعيد تاريخًا أو تاريخًا مع وقت ناتجًا عن إضافة interval إلى datetime. Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة فترة زمنية إلى تاريخ
Query
SELECT addDate(toDate('2018-01-01'), INTERVAL 3 YEAR)
Response
┌─addDate(toDa⋯valYear(3))─┐
│               2021-01-01 │
└──────────────────────────┘

addDays

أُضيفت في: v1.1.0 تضيف عددًا محددًا من الأيام إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية. البنية
addDays(datetime, num)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت يُراد إضافة العدد المحدد من الأيام إليه. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الأيام المراد إضافتها. (U)Int* أو Float*
القيمة المُعادة يعيد datetime بعد إضافة num يومًا إليه. Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة أيام إلى أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addDays(date, 5) AS add_days_with_date,
    addDays(date_time, 5) AS add_days_with_date_time,
    addDays(date_time_string, 5) AS add_days_with_date_time_string
Response
┌─add_days_with_date─┬─add_days_with_date_time─┬─add_days_with_date_time_string─┐
│         2024-01-06 │     2024-01-06 00:00:00 │        2024-01-06 00:00:00.000 │
└────────────────────┴─────────────────────────┴────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 day)
Response
┌─plus(CAST('1⋯valDay(10))─┐
│               1998-06-26 │
└──────────────────────────┘

addHours

أُضيف في: v1.1.0 يضيف عددًا محددًا من الساعات إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّزَين كسلسلة نصية. الصيغة
addHours(datetime, num)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت يُضاف إليه عدد الساعات المحدد. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الساعات المراد إضافتها. (U)Int* أو Float*
القيمة المُعادة تعيد datetime بعد إضافة num ساعة إليه. DateTime أو DateTime64(3) أمثلة إضافة ساعات إلى أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addHours(date, 12) AS add_hours_with_date,
    addHours(date_time, 12) AS add_hours_with_date_time,
    addHours(date_time_string, 12) AS add_hours_with_date_time_string
Response
┌─add_hours_with_date─┬─add_hours_with_date_time─┬─add_hours_with_date_time_string─┐
│ 2024-01-01 12:00:00 │      2024-01-01 12:00:00 │         2024-01-01 12:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘
استخدام البنية البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 hour)
Response
┌─plus(CAST('1⋯alHour(10))─┐
│      1998-06-16 10:00:00 │
└──────────────────────────┘

addInterval

أُضيف في: v22.11.0 يضيف فترة زمنية إلى فترة زمنية أخرى أو إلى Tuple من الفترات الزمنية.
ستُدمج الفترات الزمنية من النوع نفسه في فترة زمنية واحدة. على سبيل المثال، إذا تم تمرير toIntervalDay(1) و toIntervalDay(2)، فستكون النتيجة (3) بدلًا من (1,1).
الصيغة
addInterval(interval_1, interval_2)
الوسيطات
  • interval_1 — قيمة Interval الأولى أو Tuple من قيم Interval. Interval أو Tuple(Interval)
  • interval_2 — قيمة Interval الثانية المراد إضافتها. Interval
القيمة المُعادة يُرجع Tuple من قيم Interval Tuple(Interval) أمثلة إضافة فواصل زمنية
Query
SELECT addInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT addInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT addInterval(INTERVAL 2 DAY, INTERVAL 1 DAY)
Response
┌─addInterval(toIntervalDay(1), toIntervalMonth(1))─┐
│ (1,1)                                             │
└───────────────────────────────────────────────────┘
┌─addInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
│ (1,1,1)                                                                │
└────────────────────────────────────────────────────────────────────────┘
┌─addInterval(toIntervalDay(2), toIntervalDay(1))─┐
│ (3)                                             │
└─────────────────────────────────────────────────┘

addMicroseconds

أُضيف في: v22.6.0 يضيف عددًا محددًا من الميكروثواني إلى تاريخ ووقت، أو إلى تاريخ ووقت مُرمَّز كسلسلة نصية. البنية
addMicroseconds(datetime, num)
الوسائط
  • datetime — تاريخ ووقت يُضاف إليه العدد المحدد من الميكروثواني. DateTime أو DateTime64 أو String
  • num — عدد الميكروثواني المطلوب إضافته. (U)Int* أو Float*
القيمة المُعادة تُرجِع date_time بعد إضافة num من الميكروثواني DateTime64 أمثلة إضافة ميكروثوانٍ إلى أنواع مختلفة من التاريخ والوقت
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMicroseconds(date_time, 1000000) AS add_microseconds_with_date_time,
    addMicroseconds(date_time_string, 1000000) AS add_microseconds_with_date_time_string
Response
┌─add_microseconds_with_date_time─┬─add_microseconds_with_date_time_string─┐
│      2024-01-01 00:00:01.000000 │             2024-01-01 00:00:01.000000 │
└─────────────────────────────────┴────────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 microsecond)
Response
┌─plus(CAST('19⋯osecond(10))─┐
│ 1998-06-16 00:00:00.000010 │
└────────────────────────────┘

addMilliseconds

أُضيفت في: v22.6.0 تضيف عددًا محددًا من المللي ثانية إلى قيمة تاريخ ووقت أو إلى تاريخ ووقت مُرمَّزَين كسلسلة نصية. البنية
addMilliseconds(datetime, num)
الوسائط
  • datetime — تاريخ ووقت يُضاف إليه العدد المحدد من المللي ثانية. DateTime أو DateTime64 أو String
  • num — عدد المللي ثانية المطلوب إضافته. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد إضافة num مللي ثانية إليه DateTime64 أمثلة إضافة مللي ثانية إلى أنواع مختلفة من التاريخ والوقت
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMilliseconds(date_time, 1000) AS add_milliseconds_with_date_time,
    addMilliseconds(date_time_string, 1000) AS add_milliseconds_with_date_time_string
Response
┌─add_milliseconds_with_date_time─┬─add_milliseconds_with_date_time_string─┐
│         2024-01-01 00:00:01.000 │                2024-01-01 00:00:01.000 │
└─────────────────────────────────┴────────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 millisecond)
Response
┌─plus(CAST('1⋯second(10))─┐
│  1998-06-16 00:00:00.010 │
└──────────────────────────┘

addMinutes

أُضيف في: v1.1.0 يضيف عددًا محددًا من الدقائق إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية. البنية
addMinutes(datetime, num)
الوسيطات
  • datetime — تاريخ أو قيمة تاريخ/وقت يُضاف إليها العدد المحدد من الدقائق. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الدقائق المراد إضافتها. (U)Int* أو Float*
القيمة المُعادة تعيد datetime بعد إضافة num دقيقةً إليه. DateTime أو DateTime64(3) أمثلة إضافة دقائق إلى أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMinutes(date, 20) AS add_minutes_with_date,
    addMinutes(date_time, 20) AS add_minutes_with_date_time,
    addMinutes(date_time_string, 20) AS add_minutes_with_date_time_string
Response
┌─add_minutes_with_date─┬─add_minutes_with_date_time─┬─add_minutes_with_date_time_string─┐
│   2024-01-01 00:20:00 │        2024-01-01 00:20:00 │           2024-01-01 00:20:00.000 │
└───────────────────────┴────────────────────────────┴───────────────────────────────────┘
استخدام البنية البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 minute)
Response
┌─plus(CAST('1⋯Minute(10))─┐
│      1998-06-16 00:10:00 │
└──────────────────────────┘

addMonths

أُضيف في: v1.1.0 يضيف عددًا محددًا من الأشهر إلى تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية. الصيغة
addMonths(datetime, num)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت لإضافة عدد محدد من الأشهر إليه. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الأشهر المراد إضافتها. (U)Int* أو Float*
القيمة المعادة يعيد datetime بعد إضافة num من الأشهر إليه Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة أشهر إلى أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addMonths(date, 6) AS add_months_with_date,
    addMonths(date_time, 6) AS add_months_with_date_time,
    addMonths(date_time_string, 6) AS add_months_with_date_time_string
Response
┌─add_months_with_date─┬─add_months_with_date_time─┬─add_months_with_date_time_string─┐
│           2024-07-01 │       2024-07-01 00:00:00 │          2024-07-01 00:00:00.000 │
└──────────────────────┴───────────────────────────┴──────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 month)
Response
┌─plus(CAST('1⋯lMonth(10))─┐
│               1999-04-16 │
└──────────────────────────┘

addNanoseconds

أُضيف في الإصدار: v22.6.0 يضيف عددًا محددًا من النانوثواني إلى تاريخ ووقت أو إلى تاريخ ووقت مُرمَّزَين كسلسلة نصية. الصيغة
addNanoseconds(datetime, num)
الوسيطات
  • datetime — قيمة تاريخ ووقت يُراد إضافة العدد المحدد من النانوثواني إليها. DateTime أو DateTime64 أو String
  • num — عدد النانوثواني المراد إضافتها. (U)Int* أو Float*
القيمة المُعادة تُرجِع datetime بعد إضافة num من النانوثواني إليه من النوع DateTime64 أمثلة إضافة نانوثوانٍ إلى أنواع مختلفة من التاريخ والوقت
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addNanoseconds(date_time, 1000) AS add_nanoseconds_with_date_time,
    addNanoseconds(date_time_string, 1000) AS add_nanoseconds_with_date_time_string
Response
┌─add_nanoseconds_with_date_time─┬─add_nanoseconds_with_date_time_string─┐
│  2024-01-01 00:00:00.000001000 │         2024-01-01 00:00:00.000001000 │
└────────────────────────────────┴───────────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 1000 nanosecond)
Response
┌─plus(CAST('199⋯osecond(1000))─┐
│ 1998-06-16 00:00:00.000001000 │
└───────────────────────────────┘

addQuarters

أُضيف في: v20.1.0 يضيف عددًا محددًا من أرباع السنة إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية. الصيغة
addQuarters(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت يُضاف إليه العدد المحدد من أرباع السنة. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد أرباع السنة المطلوب إضافتها. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد إضافة num من أرباع السنة إليه Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة أرباع السنة إلى أنواع مختلفة من التاريخ
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addQuarters(date, 1) AS add_quarters_with_date,
    addQuarters(date_time, 1) AS add_quarters_with_date_time,
    addQuarters(date_time_string, 1) AS add_quarters_with_date_time_string
Response
┌─add_quarters_with_date─┬─add_quarters_with_date_time─┬─add_quarters_with_date_time_string─┐
│             2024-04-01 │         2024-04-01 00:00:00 │            2024-04-01 00:00:00.000 │
└────────────────────────┴─────────────────────────────┴────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 quarter)
Response
┌─plus(CAST('1⋯uarter(10))─┐
│               2000-12-16 │
└──────────────────────────┘

addSeconds

قُدِّم في: v1.1.0 يضيف عددًا محددًا من الثواني إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُمثَّل كسلسلة نصية، أو تاريخ ووقت مُمثَّل كسلسلة نصية. الصيغة
addSeconds(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لإضافة العدد المحدد من الثواني إليه. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الثواني المراد إضافته. (U)Int* أو Float*
القيمة المعادة يعيد datetime بعد إضافة num ثانية إليه. DateTime أو DateTime64(3) أمثلة إضافة ثوانٍ إلى أنواع تاريخ متعددة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addSeconds(date, 30) AS add_seconds_with_date,
    addSeconds(date_time, 30) AS add_seconds_with_date_time,
    addSeconds(date_time_string, 30) AS add_seconds_with_date_time_string
Response
┌─add_seconds_with_date─┬─add_seconds_with_date_time─┬─add_seconds_with_date_time_string─┐
│   2024-01-01 00:00:30 │        2024-01-01 00:00:30 │           2024-01-01 00:00:30.000 │
└───────────────────────┴────────────────────────────┴───────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 second)
Response
┌─dateAdd('1998-06-16'::Date, INTERVAL 10 second)─┐
│                             1998-06-16 00:00:10 │
└─────────────────────────────────────────────────┘

addTupleOfIntervals

أُضيف في: v22.11.0 يضيف بالتتابع Tuple من قيم interval إلى تاريخ أو تاريخ مع وقت. البنية
addTupleOfIntervals(datetime, intervals)
الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لإضافة الفترات إليه. Date أو Date32 أو DateTime أو DateTime64
  • intervalsTuple من الفترات لإضافتها إلى datetime. Tuple(Interval)
القيمة المُعادة يُرجع date بعد إضافة intervals Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة Tuple من الفترات إلى تاريخ
Query
WITH toDate('2018-01-01') AS date
SELECT addTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 MONTH, INTERVAL 1 YEAR))
Response
┌─addTupleOfIntervals(date, (toIntervalDay(1), toIntervalMonth(1), toIntervalYear(1)))─┐
│                                                                           2019-02-02 │
└──────────────────────────────────────────────────────────────────────────────────────┘

addWeeks

أُضيفت في: v1.1.0 يضيف عددًا محددًا من الأسابيع إلى تاريخ، أو تاريخ مع وقت، أو تاريخ أو تاريخ مع وقت مُشفَّر كسلسلة نصية. الصيغة
addWeeks(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ يتضمن وقتًا لإضافة العدد المحدد من الأسابيع إليه. Date or Date32 or DateTime or DateTime64 or String
  • num — عدد الأسابيع المراد إضافتها. (U)Int* or Float*
القيمة المعادة تعيد datetime بعد إضافة num من الأسابيع إليه Date or Date32 or DateTime or DateTime64 أمثلة إضافة أسابيع إلى أنواع مختلفة من التواريخ
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addWeeks(date, 5) AS add_weeks_with_date,
    addWeeks(date_time, 5) AS add_weeks_with_date_time,
    addWeeks(date_time_string, 5) AS add_weeks_with_date_time_string
Response
┌─add_weeks_with_date─┬─add_weeks_with_date_time─┬─add_weeks_with_date_time_string─┐
│          2024-02-05 │      2024-02-05 00:00:00 │         2024-02-05 00:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 week)
Response
┌─plus(CAST('1⋯alWeek(10))─┐
│               1998-08-25 │
└──────────────────────────┘

addYears

أُضيفت في: v1.1.0 تضيف عددًا محددًا من السنوات إلى تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت ممثَّلَين كسلسلة نصية. البنية
addYears(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لإضافة العدد المحدد من السنوات إليه. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد السنوات المراد إضافتها. (U)Int* أو Float*
القيمة المُعادة تُعيد datetime بعد إضافة num سنة إليه. Date أو Date32 أو DateTime أو DateTime64 أمثلة إضافة سنوات إلى أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    addYears(date, 1) AS add_years_with_date,
    addYears(date_time, 1) AS add_years_with_date_time,
    addYears(date_time_string, 1) AS add_years_with_date_time_string
Response
┌─add_years_with_date─┬─add_years_with_date_time─┬─add_years_with_date_time_string─┐
│          2025-01-01 │      2025-01-01 00:00:00 │         2025-01-01 00:00:00.000 │
└─────────────────────┴──────────────────────────┴─────────────────────────────────┘
استخدام البنية البديلة لـ INTERVAL
Query
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 year)
Response
┌─plus(CAST('1⋯alYear(10))─┐
│               2008-06-16 │
└──────────────────────────┘

age

أُضيف في: v23.1.0 يعيد مكوّن الوحدة من الفرق بين startdate وenddate. ويُحسب الفرق باستخدام دقة مقدارها 1 نانوثانية. على سبيل المثال، يكون الفرق بين 2021-12-29 و2022-01-01 هو 3 أيام لوحدة اليوم، و0 شهرًا لوحدة الشهر، و0 سنة لوحدة السنة. كبديل للدالة age، راجع الدالة dateDiff. البنية
age('unit', startdate, enddate[, timezone])
المعاملات
  • unit — نوع الفاصل الزمني للنتيجة.
Unitالقيم الممكنة
nanosecondnanosecond, nanoseconds, ns
microsecondmicrosecond, microseconds, us, u
millisecondmillisecond, milliseconds, ms
secondsecond, seconds, ss, s
minuteminute, minutes, mi, n
hourhour, hours, hh, h
dayday, days, dd, d
weekweek, weeks, wk, ww
monthmonth, months, mm, m
quarterquarter, quarters, qq, q
yearyear, years, yyyy, yy
  • startdate — أول قيمة زمنية للطرح (المطروح). Date أو Date32 أو DateTime أو DateTime64
  • enddate — ثاني قيمة زمنية يُطرح منها (المطروح منه). Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. اسم المنطقة الزمنية. إذا تم تحديده، فسيُطبَّق على كلٍّ من startdate و enddate. وإذا لم يتم تحديده، فستُستخدم المنطقتان الزمنيتان لـ startdate و enddate. وإذا لم تكونا متماثلتين، فالنتيجة غير محددة. String
القيمة المعادة تعيد الفرق بين enddate و startdate معبَّرًا عنه بوحدة unit. Int32 أمثلة حساب العمر بالساعات
Query
SELECT age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))
Response
┌─age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))─┐
│                                                                                24 │
└───────────────────────────────────────────────────────────────────────────────────┘
حساب العمر بوحدات مختلفة
Query
SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    age('day', s, e) AS day_age,
    age('month', s, e) AS month_age,
    age('year', s, e) AS year_age
Response
┌──────────e─┬──────────s─┬─day_age─┬─month_age─┬─year_age─┐
│ 2022-01-01 │ 2021-12-29 │       3 │         0 │        0 │
└────────────┴────────────┴─────────┴───────────┴──────────┘

changeDay

قُدِّم في: v24.7.0 يغيّر مكوّن اليوم في قيمة من النوع Date أو في قيمة تاريخ ووقت. الصياغة
changeDay(date_or_datetime, value)
المعاملات القيمة المُعادة تُرجع قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن اليوم. Date أو Date32 أو DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT changeDay('2024-01-31'::DateTime, 15)
Response
2024-01-15 00:00:00

changeHour

أُضيفت في: v24.7.0 تُغيّر مكوّن الساعة في قيمة من نوع تاريخ أو تاريخ ووقت. البنية
changeHour(date_or_datetime, value)
الوسيطات القيمة المعادة ترجع قيمة من نفس نوع date_or_datetime مع تعديل مكوّن الساعة. DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT changeHour('2024-01-01 12:00:00'::DateTime, 5)
Response
2024-01-01 05:00:00

changeMinute

أُضيف في: v24.7.0 يُغيّر مكوّن الدقائق في date or date time. البنية
changeMinute(date_or_datetime, value)
المعاملات القيمة المُعادة يعيد قيمة من النوع نفسه لـ date_or_datetime بعد تعديل مكوّن الدقيقة. DateTime أو DateTime64 أمثلة مثال للاستخدام
Query
SELECT changeMinute('2024-01-01 12:30:00'::DateTime, 45)
Response
2024-01-01 12:45:00

changeMonth

استُحدث في: v24.7.0 يُغيّر مكوّن الشهر في قيمة من نوع تاريخ أو تاريخ ووقت. البنية
changeMonth(date_or_datetime, value)
الوسيطات القيمة المُعادة تُرجِع قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن الشهر. Date أو Date32 أو DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT changeMonth('2024-01-01'::DateTime, 12)
Response
2024-12-01 00:00:00

changeSecond

أُضيف في: v24.7.0 يُغيّر مكوّن الثواني في قيمة من نوع date أو date time. البنية
changeSecond(date_or_datetime, value)
الوسيطات القيمة المُعادة تُعيد قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن الثواني. DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT changeSecond('2024-01-01 12:30:45'::DateTime, 15)
Response
2024-01-01 12:30:15

changeYear

قُدِّمت في: v24.7.0 تُغيِّر مكوّن السنة في قيمة من نوع Date أو DateTime. الصياغة
changeYear(date_or_datetime, value)
الوسيطات القيمة المُعادة تُعيد قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن السنة. Date أو Date32 أو DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT changeYear('2024-01-01'::DateTime, 2023)
Response
2023-01-01 00:00:00

dateDiff

تم تقديمه في: v23.4.0 يعيد عدد حدود unit المحددة التي جرى تجاوزها بين startdate وenddate. يُحسب الفرق باستخدام الوحدات النسبية. على سبيل المثال، الفرق بين 2021-12-29 و2022-01-01 هو 3 أيام للوحدة day (راجع toRelativeDayNum)، وشهر واحد للوحدة month (راجع toRelativeMonthNum)، وسنة واحدة للوحدة year (راجع toRelativeYearNum). إذا جرى تحديد الوحدة week، فإن dateDiff يفترض أن الأسابيع تبدأ يوم الاثنين. لاحظ أن هذا السلوك يختلف عن سلوك الدالة toWeek()، حيث تبدأ الأسابيع افتراضيًا يوم الأحد. كبديل لـ dateDiff، راجع الدالة age. البنية
dateDiff(unit, startdate, enddate[, timezone])
الأسماء المستعارة: timestampDiff, TIMESTAMP_DIFF, DATE_DIFF, date_diff, timestamp_diff المعاملات
  • unit — نوع الفاصل الزمني المستخدم في النتيجة.
الوحدةالقيم الممكنة
نانوثانيةnanosecond, nanoseconds, ns
ميكروثانيةmicrosecond, microseconds, us, u
مللي ثانيةmillisecond, milliseconds, ms
ثانيةsecond, seconds, ss, s
دقيقةminute, minutes, mi, n
ساعةhour, hours, hh, h
يومday, days, dd, d
أسبوعweek, weeks, wk, ww
شهرmonth, months, mm, m
ربع سنةquarter, quarters, qq, q
سنةyear, years, yyyy, yy
  • startdate — القيمة الزمنية الأولى التي تُطرح (المطروح). Date أو Date32 أو DateTime أو DateTime64
  • enddate — القيمة الزمنية الثانية التي يُطرح منها (المطروح منه). Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. اسم المنطقة الزمنية. إذا تم تحديده، فسيُطبَّق على كلٍّ من startdate وenddate. وإذا لم يتم تحديده، فستُستخدم المنطقتان الزمنيتان لـ startdate وenddate. وإذا لم تكونا متماثلتين، فستكون النتيجة غير محددة. String
القيمة المعادة تعيد الفرق بين enddate وstartdate معبَّرًا عنه بوحدة unit. Int64 أمثلة حساب فرق التاريخ بالساعات
Query
SELECT dateDiff('hour', toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) AS res
Response
┌─res─┐
│  25 │
└─────┘
احسب الفرق بين التواريخ بوحدات مختلفة
Query
SELECT
    toDate('2022-01-01') AS e,
    toDate('2021-12-29') AS s,
    dateDiff('day', s, e) AS day_diff,
    dateDiff('month', s, e) AS month_diff,
    dateDiff('year', s, e) AS year_diff
Response
┌──────────e─┬──────────s─┬─day_diff─┬─month_diff─┬─year_diff─┐
│ 2022-01-01 │ 2021-12-29 │        3 │          1 │         1 │
└────────────┴────────────┴──────────┴────────────┴───────────┘

dateName

أُضيف في: v21.7.0 يعيد الجزء المحدد من التاريخ. القيم الممكنة:
  • ‘year’
  • ‘quarter’
  • ‘month’
  • ‘week’
  • ‘dayofyear’
  • ‘day’
  • ‘weekday’
  • ‘hour’
  • ‘minute’
  • ‘second’
البنية
dateName(date_part, date[, timezone])
المعاملات
  • date_part — جزء التاريخ الذي تريد استخراجه. String
  • datetime — قيمة تاريخ أو تاريخ ووقت. Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. المنطقة الزمنية. String
القيمة المعادة تُرجع الجزء المحدد من التاريخ. String أمثلة استخراج أجزاء مختلفة من التاريخ
Query
WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT
    dateName('year', date_value),
    dateName('month', date_value),
    dateName('day', date_value)
Response
┌─dateName('year', date_value)─┬─dateName('month', date_value)─┬─dateName('day', date_value)─┐
│ 2021                         │ April                         │ 14                          │
└──────────────────────────────┴───────────────────────────────┴─────────────────────────────┘

dateTrunc

أُضيفت في: v20.8.0 تقصّ قيمة تاريخ ووقت إلى الجزء المحدد من التاريخ. الصيغة
dateTrunc(unit, datetime[, timezone])
الأسماء البديلة: DATE_TRUNC الوسيطات
  • unit — وحدة الفترة الزمنية المراد اقتطاع النتيجة إليها. القيم الممكنة: nanosecond (فقط DateTime64)، microsecond (فقط DateTime64)، millisecond (فقط DateTime64)، second، minute، hour، day، week، month، quarter، year. String
  • datetime — التاريخ والوقت. Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. اسم المنطقة الزمنية لقيمة التاريخ والوقت المعادة. إذا لم يتم تحديده، تستخدم الدالة المنطقة الزمنية الخاصة بالوسيطة datetime. String
القيمة المعادة تعيد قيمة التاريخ والوقت بعد اقتطاعها.
وسيطة unitوسيطة datetimeنوع الإرجاع
Year, Quarter, Month, WeekDate32 أو DateTime64 أو Date أو DateTimeDate32 أو Date
Day, Hour, Minute, SecondDate32، DateTime64، Date، أو DateTimeDateTime64 أو DateTime
Millisecond, Microsecond,أي قيمةDateTime64
Nanosecondبمقياس 3 أو 6 أو 9
أمثلة الاقتطاع من دون منطقة زمنية
Query
SELECT now(), dateTrunc('hour', now());
Response
┌───────────────now()─┬─dateTrunc('hour', now())──┐
│ 2020-09-28 10:40:45 │       2020-09-28 10:00:00 │
└─────────────────────┴───────────────────────────┘
الاقتطاع مع تحديد المنطقة الزمنية
Query
SELECT now(), dateTrunc('hour', now(), 'Asia/Istanbul');
Response
┌───────────────now()─┬─dateTrunc('hour', now(), 'Asia/Istanbul')──┐
│ 2020-09-28 10:46:26 │                        2020-09-28 13:00:00 │
└─────────────────────┴────────────────────────────────────────────┘

formatDateTime

أُضيف في: v1.1.0 ينسّق تاريخًا أو تاريخًا مع وقت وفقًا لسلسلة التنسيق المحددة. يكون format تعبيرًا ثابتًا، لذا لا يمكنك استخدام عدة تنسيقات لعمود نتيجة واحد. تستخدم formatDateTime أسلوب تنسيق datetime الخاص بـ MySQL، راجع وثائق MySQL. العملية العكسية لهذه الدالة هي parseDateTime. باستخدام حقول الاستبدال، يمكنك تحديد نمط للسلسلة الناتجة. يوضح عمود المثال في الجدول أدناه نتيجة التنسيق للقيمة 2018-01-02 22:33:44. حقول الاستبدال:
العنصر النائبالوصفمثال
%aالاسم المختصر ليوم الأسبوع (Mon-Sun)Mon
%bالاسم المختصر للشهر (Jan-Dec)Jan
%cالشهر كرقم صحيح (01-12)01
%Cالسنة مقسومة على 100 ومحوّلة إلى عدد صحيح (00-99)20
%dيوم الشهر مع أصفار بادئة (01-31)02
%Dتاريخ قصير بصيغة MM/DD/YY، ويكافئ %m/%d/%y01/02/18
%eيوم الشهر مع مسافات بادئة (1-31)2
%fالجزء الكسري من الثانية123456
%Fتاريخ قصير بصيغة YYYY-MM-DD، ويكافئ %Y-%m-%d2018-01-02
%gتنسيق سنة من رقمين، متوافق مع ISO 860118
%Gتنسيق سنة من أربعة أرقام لرقم الأسبوع وفق ISO2018
%hالساعة بتنسيق 12 ساعة (01-12)09
%Hالساعة بتنسيق 24 ساعة (00-23)22
%iالدقيقة (00-59)33
%Iالساعة بتنسيق 12 ساعة (01-12)10
%jيوم السنة (001-366)002
%kالساعة بتنسيق 24 ساعة (00-23)14
%lالساعة بتنسيق 12 ساعة (01-12)09
%mالشهر كرقم صحيح (01-12)01
%Mالاسم الكامل للشهر (January-December)January
%nمحرف سطر جديد
%pمؤشر AM أو PMPM
%Qالربع (1-4)1
%rوقت 12 ساعة بصيغة HH:MM AM/PM، ويكافئ %h:%i %p10:30 PM
%Rوقت 24 ساعة بصيغة HH:MM، ويكافئ %H:%i22:33
%sالثانية (00-59)44
%Sالثانية (00-59)44
%tمحرف tab أفقي
%Tتنسيق الوقت ISO 8601 ‏(HH:MM:SS)، ويكافئ %H:%i:%S22:33:44
%uيوم الأسبوع في ISO 8601 كرقم يبدأ فيه الاثنين من 1 (1-7)2
%Vرقم الأسبوع وفق ISO 8601 ‏(01-53)01
%wيوم الأسبوع كرقم صحيح يبدأ فيه الأحد من 0 (0-6)2
%Wالاسم الكامل ليوم الأسبوع (Monday-Sunday)Monday
%yالسنة، آخر رقمين (00-99)18
%Yالسنة2018
%zإزاحة الوقت عن UTC بصيغة +HHMM أو -HHMM-0500
%%علامة %%
  • في إصدارات ClickHouse الأقدم من v23.4، تطبع %f صفرًا واحدًا (0) إذا كانت القيمة المنسّقة من النوع Date أو Date32 أو DateTime (التي لا تحتوي على أجزاء كسرية من الثانية) أو من النوع DateTime64 بدقة تساوي 0.
  • في إصدارات ClickHouse الأقدم من v25.1، تطبع %f عددًا من الخانات يساوي precision الخاصة بـ DateTime64 بدلًا من 6 خانات ثابتة.
  • في إصدارات ClickHouse الأقدم من v23.4، تطبع %M الدقيقة (00-59) بدلًا من الاسم الكامل للشهر (January-December).
البنية
formatDateTime(datetime, format[, timezone])
الأسماء المستعارة: DATE_FORMAT الوسيطات
  • datetime — تاريخ أو تاريخ ووقت المراد تنسيقه. Date أو Date32 أو DateTime أو DateTime64
  • format — سلسلة تنسيق تحتوي على حقول استبدال. String
  • timezone — اختياري. اسم المنطقة الزمنية للوقت المنسَّق. String
القيمة المُعادة يعيد قيم التاريخ والوقت وفقًا للتنسيق المحدد. String أمثلة تنسيق التاريخ باستخدام العنصر النائب للسنة
Query
SELECT formatDateTime(toDate('2010-01-04'), '%g')
Response
┌─formatDateTime(toDate('2010-01-04'), '%g')─┐
│ 10                                         │
└────────────────────────────────────────────┘
تنسيق DateTime64 بأجزاء من الثانية
Query
SELECT formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')
Response
┌─formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')─┐
│ 1234560                                                             │
└─────────────────────────────────────────────────────────────────────┘
التنسيق باستخدام المنطقة الزمنية
Query
SELECT
    now() AS ts,
    time_zone,
    formatDateTime(ts, '%T', time_zone) AS str_tz_time
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10
Response
┌──────────────────ts─┬─time_zone─────────┬─str_tz_time─┐
│ 2023-09-08 19:13:40 │ Europe/Amsterdam  │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Andorra    │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Astrakhan  │ 23:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Athens     │ 22:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Belfast    │ 20:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Belgrade   │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Berlin     │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Bratislava │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Brussels   │ 21:13:40    │
│ 2023-09-08 19:13:40 │ Europe/Bucharest  │ 22:13:40    │
└─────────────────────┴───────────────────┴─────────────┘

formatDateTimeInJodaSyntax

أُضيفت في: v20.1.0 تُشبه formatDateTime، إلا أنها تنسّق قيم التاريخ والوقت بأسلوب Joda بدلًا من أسلوب MySQL. راجع توثيق Joda Time. العملية العكسية لهذه الدالة هي parseDateTimeInJodaSyntax. باستخدام حقول الاستبدال، يمكنك تحديد نمط للسلسلة الناتجة. حقول الاستبدال:
العنصر النائبالوصفالعرضأمثلة
GالعصرنصAD
Cقرن العصر (>=0)رقم20
Yسنة العصر (>=0)سنة1996
xسنة الأسبوع (غير مدعومة بعد)سنة1996
wأسبوع سنة الأسبوع (غير مدعوم بعد)رقم27
eيوم الأسبوعرقم2
Eيوم الأسبوعنصTuesday; Tue
yالسنةسنة1996
Dاليوم من السنةرقم189
Mشهر السنةشهرJuly; Jul; 07
dيوم الشهررقم10
aنصف اليومنصPM
Kساعة نصف اليوم (0~11)رقم0
hساعة نصف اليوم بنظام الساعة (1~12)رقم12
Hساعة اليوم (0~23)رقم0
kساعة اليوم بنظام الساعة (1~24)رقم24
mدقيقة الساعةرقم30
sثانية الدقيقةرقم55
Sجزء من الثانيةرقم978
zالمنطقة الزمنيةنصEastern Standard Time; EST
Zإزاحة المنطقة الزمنيةمنطقة-0800; -0812
إفلات للنصفاصل
علامة اقتباس مفردةقيمة حرفية
البنية
formatDateTimeInJodaSyntax(datetime, format[, timezone])
الوسائط
  • datetime — تاريخ أو تاريخ ووقت لتنسيقه. DateTime أو Date أو Date32 أو DateTime64
  • format — سلسلة تنسيق تتضمن حقول استبدال بنمط Joda. String
  • timezone — اختياري. اسم المنطقة الزمنية للوقت المنسَّق. String
القيمة المُعادة يعرض قيم الوقت والتاريخ وفقًا للتنسيق المحدد. String أمثلة تنسيق التاريخ والوقت باستخدام بنية Joda
Query
SELECT formatDateTimeInJodaSyntax(toDateTime('2010-01-04 12:34:56'), 'yyyy-MM-dd HH:mm:ss')
Response
┌─formatDateTimeInJodaSyntax(toDateTime('2010-01-04 12:34:56'), 'yyyy-MM-dd HH:mm:ss')─┐
│ 2010-01-04 12:34:56                                                                     │
└─────────────────────────────────────────────────────────────────────────────────────────┘

fromDaysSinceYearZero

أُضيفت في: v23.11.0 بالنسبة إلى عدد معيّن من الأيام المنقضية منذ 1 January 0000، تُرجِع هذه الدالة التاريخ الموافق في التقويم الغريغوري الاستباقي المعرّف وفق ISO 8601. يكون الحساب مماثلًا لما في الدالة FROM_DAYS() في MySQL. وتكون النتيجة غير معرّفة إذا تعذّر تمثيلها ضمن حدود النوع Date. الصيغة
fromDaysSinceYearZero(days)
الأسماء البديلة: FROM_DAYS الوسائط
  • days — عدد الأيام المنقضية منذ العام صفر. UInt32
القيمة المُعادة تعيد التاريخ الموافق لعدد الأيام المنقضية منذ العام صفر. Date أمثلة تحويل الأيام منذ العام صفر إلى تواريخ
Query
SELECT
fromDaysSinceYearZero(739136) AS date1,
fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2
Response
┌──────date1─┬──────date2─┐
│ 2023-09-08 │ 2023-09-08 │
└────────────┴────────────┘

fromDaysSinceYearZero32

أُضيف في: v23.11.0 بالنسبة إلى عدد معيّن من الأيام المنقضية منذ 1 January 0000، تُرجِع الدالة التاريخ المقابل في التقويم الغريغوري الممتد استباقيًا كما يحدده ISO 8601. ويكون الحساب مماثلًا لما في الدالة FROM_DAYS() في MySQL. وتكون النتيجة غير معرّفة إذا تعذّر تمثيلها ضمن حدود النوع Date32. البنية
fromDaysSinceYearZero32(days)
الوسائط
  • days — عدد الأيام المنقضية منذ السنة صفر. UInt32
القيمة المُعادة تُرجِع التاريخ الموافق لعدد الأيام المنقضية منذ السنة صفر. Date32 أمثلة تحويل الأيام منذ السنة صفر إلى تواريخ
Query
SELECT
fromDaysSinceYearZero32(739136) AS date1,
fromDaysSinceYearZero32(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2
Response
┌──────date1─┬──────date2─┐
│ 2023-09-08 │ 2023-09-08 │
└────────────┴────────────┘

fromModifiedJulianDay

أُضيفت في: v21.1.0 تحوّل رقم Modified Julian Day إلى تاريخ وفق Proleptic Gregorian calendar بصيغة نصية YYYY-MM-DD. تدعم هذه الدالة أرقام الأيام من -678941 إلى 2973483 (وهي تمثل 0000-01-01 و9999-12-31 على التوالي). وتُطلق استثناءً إذا كان رقم اليوم خارج النطاق المدعوم. البنية
fromModifiedJulianDay(day)
الوسائط
  • day — رقم اليوم اليولياني المُعدَّل. (U)Int*
القيمة المُرجَعة تعيد التاريخ بصيغة نصية. String أمثلة تحويل اليوم اليولياني المُعدَّل إلى تاريخ
Query
SELECT fromModifiedJulianDay(58849)
Response
┌─fromModifiedJulianDay(58849)─┐
│ 2020-01-01                   │
└──────────────────────────────┘

fromModifiedJulianDayOrNull

أُضيف في: v21.1.0 يشبه fromModifiedJulianDay()، لكنه يعيد NULL بدلًا من إطلاق استثناءات. الصيغة
fromModifiedJulianDayOrNull(day)
الوسائط
  • day — رقم اليوم اليولياني المعدّل. (U)Int*
القيمة المُعادة يعيد التاريخ بصيغة نصية إذا كانت قيمة الوسيط day صالحة، وإلا فستكون null. Nullable(String) أمثلة تحويل اليوم اليولياني المعدّل إلى تاريخ مع التعامل مع القيم null
Query
SELECT fromModifiedJulianDayOrNull(58849);
SELECT fromModifiedJulianDayOrNull(60000000); -- invalid argument, returns NULL
Response
┌─fromModified⋯Null(58849)─┐
│ 2020-01-01               │
└──────────────────────────┘
┌─fromModified⋯l(60000000)─┐
│ ᴺᵁᴸᴸ                     │
└──────────────────────────┘

fromUTCTimestamp

أُضيف في: v22.1.0 يحوّل قيمة تاريخ أو تاريخ مع وقت من المنطقة الزمنية UTC إلى قيمة تاريخ أو تاريخ مع وقت بالمنطقة الزمنية المحددة. تُضمَّن هذه الدالة أساسًا للتوافق مع Apache Spark وأطر العمل المماثلة. الصيغة
fromUTCTimestamp(datetime, time_zone)
الأسماء المستعارة: from_utc_timestamp الوسيطات
  • datetime — قيمة ثابتة من نوع تاريخ أو تاريخ مع وقت، أو تعبير. DateTime أو DateTime64
  • time_zone — قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية. String
القيمة المعادة يعيد قيمة من نوع DateTime/DateTime64 في المنطقة الزمنية المحددة. DateTime أو DateTime64 أمثلة تحويل المنطقة الزمنية UTC إلى المنطقة الزمنية المحددة
Query
SELECT fromUTCTimestamp(toDateTime64('2023-03-16 10:00:00', 3), 'Asia/Shanghai')
Response
┌─fromUTCTimestamp(toDateTime64('2023-03-16 10:00:00',3), 'Asia/Shanghai')─┐
│                                                 2023-03-16 18:00:00.000 │
└─────────────────────────────────────────────────────────────────────────┘

fromUnixTimestamp

أُضيف في: v20.8.0 تحوّل هذه الدالة طابعًا زمنيًا بنظام Unix إلى تاريخ تقويمي ووقت من اليوم. يمكن استدعاؤها بطريقتين:
  • عند تمرير وسيط واحد من النوع Integer، فإنها تُرجع قيمة من النوع DateTime، أي إنها تتصرف مثل toDateTime.
  • عند تمرير وسيطين أو ثلاثة، بحيث يكون الوسيط الأول قيمة من النوع Integer أو Date أو Date32 أو DateTime أو DateTime64، ويكون الوسيط الثاني سلسلة تنسيق ثابتة، ويكون الوسيط الثالث سلسلة اختيارية ثابتة للمنطقة الزمنية، فإن الدالة تُرجع قيمة من النوع String، أي إنها تتصرف مثل formatDateTime. في هذه الحالة، يُستخدم نمط MySQL لتنسيق التاريخ والوقت.
البنية
fromUnixTimestamp(timestamp)
fromUnixTimestamp(timestamp[, format[, timezone]])
الأسماء البديلة: FROM_UNIXTIME الوسائط
  • timestamp — طابع زمني لـ Unix أو قيمة تاريخ/تاريخ مع وقت. (U)Int* أو Date أو Date32 أو DateTime أو DateTime64
  • format — اختياري. سلسلة تنسيق ثابتة لتنسيق الإخراج. String
  • timezone — اختياري. سلسلة ثابتة للمنطقة الزمنية. String
القيمة المُعادة يعيد قيمة DateTime للطابع الزمني عند استدعائه بوسيطة واحدة، أو قيمة String عند استدعائه بوسيطتين أو ثلاث وسيطات. DateTime أو String أمثلة تحويل طابع زمني لـ Unix إلى DateTime
Query
SELECT fromUnixTimestamp(423543535)
Response
┌─fromUnixTimestamp(423543535)─┐
│          1983-06-04 10:58:55 │
└──────────────────────────────┘
تحويل طابع زمني لـ Unix باستخدام تنسيق
Query
SELECT fromUnixTimestamp(1234334543, '%Y-%m-%d %R:%S') AS DateTime
Response
┌─DateTime────────────┐
│ 2009-02-11 14:42:23 │
└─────────────────────┘

fromUnixTimestampInJodaSyntax

أُضيفت في: v23.1.0 تُحوِّل هذه الدالة طابعًا زمنيًا بنظام Unix إلى تاريخ تقويمي ووقت من اليوم. يمكن استدعاؤها بطريقتين: عند تمرير وسيط واحد من النوع Integer، فإنها تُرجع قيمة من النوع DateTime، أي إنها تعمل مثل toDateTime. عند تمرير وسيطين أو ثلاثة وسائط، بحيث تكون قيمة الوسيط الأول من النوع Integer أو Date أو Date32 أو DateTime أو DateTime64، ويكون الوسيط الثاني سلسلة تنسيق ثابتة، ويكون الوسيط الثالث سلسلة منطقة زمنية ثابتة اختيارية، فإن الدالة تُرجع قيمة من النوع String، أي إنها تعمل مثل formatDateTimeInJodaSyntax. في هذه الحالة، يُستخدم نمط تنسيق التاريخ والوقت في Joda. البنية
fromUnixTimestampInJodaSyntax(timestamp)
fromUnixTimestampInJodaSyntax(timestamp, format[, timezone])
الوسائط
  • timestamp — طابع زمني بنظام Unix أو قيمة تاريخ/وقت. (U)Int* أو Date أو Date32 أو DateTime أو DateTime64
  • format — اختياري. سلسلة تنسيق ثابتة تستخدم بناء جملة Joda لتنسيق الإخراج. String
  • timezone — اختياري. سلسلة ثابتة للمنطقة الزمنية. String
القيمة المعادة يعيد قيمة تاريخ مع وقت عند استدعائه بوسيطة واحدة، أو قيمة من النوع String عند استدعائه بوسيطتين أو ثلاث وسيطات.} DateTime أو String أمثلة تحويل طابع زمني بنظام Unix باستخدام تنسيق Joda
Query
SELECT fromUnixTimestampInJodaSyntax(1234334543, 'yyyy-MM-dd HH:mm:ss', 'UTC') AS DateTime
Response
┌─DateTime────────────┐
│ 2009-02-11 06:42:23 │
└─────────────────────┘

localtime

أُضيف في: v26.7.0 يعيد الوقت الحالي من اليوم وفق المنطقة الزمنية الخاصة بالخادم (أو الجلسة) في لحظة تحليل الاستعلام. الدالة تعبير ثابت. وهي LOCALTIME القياسية في SQL / PostgreSQL، وتكافئ CAST(now() AS Time). البنية
localtime()
المعاملات
  • لا يوجد.
القيمة المُعادة يعيد الوقت الحالي. Time أمثلة صيغة SQL القياسية من دون أقواس
Query
SELECT LOCALTIME
Response
┌───────LOCALTIME─┐
│        07:42:09 │
└─────────────────┘

makeDate

أُضيفت في: v22.6.0 تنشئ قيمة Date من أحد الخيارين التاليين:
  • سنة وشهر ويوم
  • سنة ورقم اليوم في السنة
الصيغة
makeDate(year, month, day)
makeDate(year, day_of_year)
الوسيطات القيمة المعادة تعيد قيمة Date مُنشأة من الوسيطات المقدَّمة Date أمثلة إنشاء Date من سنة وشهر ويوم
Query
SELECT makeDate(2023, 2, 28) AS date;
Response
┌───────date─┐
│ 2023-02-28 │
└────────────┘
Date من السنة ويوم السنة
Query
SELECT makeDate(2023, 42) AS date;
Response
┌───────date─┐
│ 2023-02-11 │
└────────────┘

makeDate32

أُضيفت في: v22.6.0 تُنشئ Date32 من أحد الخيارين التاليين:
  • سنة وشهر ويوم
  • سنة ويوم من أيام السنة
الصياغة
makeDate32(year, month, day)
makeDate32(year, day_of_year)
الوسائط القيمة المعادة يعيد قيمة Date32 مُنشأة من الوسائط المقدَّمة Date32 أمثلة Date32 من سنة وشهر ويوم
Query
SELECT makeDate(2023, 2, 28) AS date;
Response
┌───────date─┐
│ 2023-02-28 │
└────────────┘
Date32 من السنة ورقم اليوم في السنة
Query
SELECT makeDate(2023, 42) AS date;
Response
┌───────date─┐
│ 2023-02-11 │
└────────────┘

makeDateTime

أُضيفت في: v22.6.0 تنشئ قيمة DateTime من السنة والشهر واليوم والساعة والدقيقة والثانية، مع timezone اختياري. الصيغة
makeDateTime(year, month, day, hour, minute, second[, timezone])
الوسيطات القيمة المعادة تعيد قيمة DateTime مُنشأة من الوسيطات المقدَّمة DateTime أمثلة DateTime من السنة والشهر واليوم والساعة والدقيقة والثانية
Query
SELECT makeDateTime(2023, 2, 28, 17, 12, 33) AS DateTime;
Response
┌────────────DateTime─┐
│ 2023-02-28 17:12:33 │
└─────────────────────┘

makeDateTime64

أُضيفت في: v22.6.0 تنشئ قيمة DateTime64 من السنة والشهر واليوم والساعة والدقيقة والثانية، مع جزء كسري اختياري، ودقة، ومنطقة زمنية. البنية
makeDateTime64(year, month, day, hour, minute, second[, fraction[, precision[, timezone]]])
الوسائط القيمة المُعادة تُرجِع قيمة DateTime64 مُنشأة من الوسائط المُعطاة DateTime64 أمثلة DateTime64 من السنة والشهر واليوم والساعة والدقيقة والثانية
Query
SELECT makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5);
Response
┌─makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5)─┐
│                       2023-05-15 10:30:45.00779 │
└─────────────────────────────────────────────────┘

monthName

أُضيف في: v22.1.0 تُرجع اسم الشهر كسلسلة نصية من قيمة من نوع تاريخ أو تاريخ مع وقت. البنية
monthName(datetime)
الوسيطات القيمة المُعادة يعيد اسم الشهر. String أمثلة الحصول على اسم الشهر من التاريخ
Query
WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT monthName(date_value)
Response
┌─monthName(date_value)─┐
│ April                 │
└───────────────────────┘

now

ظهرت في: v1.1.0 تعيد التاريخ والوقت الحاليين عند لحظة تحليل الاستعلام. الدالة تعبير ثابت. الصياغة
now([timezone])
الأسماء البديلة: localtimestamp, current_timestamp الوسائط
  • timezone — اختياري. اسم المنطقة الزمنية للقيمة المُعادة. String
القيمة المُعادة يعيد التاريخ والوقت الحاليَّين. DateTime أمثلة استعلام بدون منطقة زمنية
Query
SELECT now()
Response
┌───────────────now()─┐
│ 2020-10-17 07:42:09 │
└─────────────────────┘
استعلام مع تحديد المنطقة الزمنية
Query
SELECT now('Asia/Istanbul')
Response
┌─now('Asia/Istanbul')─┐
│  2020-10-17 10:42:23 │
└──────────────────────┘
صياغة SQL القياسية دون أقواس
Query
SELECT NOW, CURRENT_TIMESTAMP
Response
┌─────────────────NOW─┬───CURRENT_TIMESTAMP─┐
│ 2020-10-17 07:42:19 │ 2020-10-17 07:42:19 │
└─────────────────────┴─────────────────────┘

now64

أُضيفت في: v20.1.0 تعيد التاريخ والوقت الحاليَّين بدقة أجزاء الثانية عند لحظة تحليل الاستعلام. الدالة تعبير ثابت. البنية
now64([scale[, timezone]])
المعاملات
  • scale — اختياري. حجم الخطوة (الدقة): 10^-precision ثانية. النطاق الصالح: [0 : 9]. تُستخدم عادةً القيم 3 (افتراضي) (مللي ثانية)، و6 (ميكروثانية)، و9 (نانوثانية). UInt8
  • timezone — اختياري. اسم المنطقة الزمنية للقيمة المُعادة. String
القيمة المُعادة تعيد التاريخ والوقت الحاليين بدقة أجزاء من الثانية. DateTime64 أمثلة استعلام بدقة افتراضية ومخصّصة
Query
SELECT now64(), now64(9, 'Asia/Istanbul')
Response
┌─────────────────now64()─┬─────now64(9, 'Asia/Istanbul')─┐
│ 2022-08-21 19:34:26.196 │ 2022-08-21 22:34:26.196542766 │
└─────────────────────────┴───────────────────────────────┘

nowInBlock

أُضيفت في: v22.8.0 تعيد التاريخ والوقت الحاليين عند معالجة كل كتلة من البيانات. وعلى عكس الدالة now، فهي ليست تعبيرًا ثابتًا، وستختلف القيمة المعادة من كتلة إلى أخرى في الاستعلامات طويلة التشغيل. من المنطقي استخدام هذه الدالة لتوليد الوقت الحالي في استعلامات INSERT SELECT طويلة التشغيل. البنية
nowInBlock([timezone])
الوسيطات
  • timezone — اختياري. اسم المنطقة الزمنية للقيمة المعادة. String
القيمة المعادة تعيد التاريخ والوقت الحاليين في لحظة معالجة كل كتلة من البيانات. DateTime أمثلة الفرق عن الدالة now()
Query
SELECT
    now(),
    nowInBlock(),
    sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock
Response
┌───────────────now()─┬────────nowInBlock()─┬─sleep(1)─┐
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:19 │        0 │
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:20 │        0 │
│ 2022-08-21 19:41:19 │ 2022-08-21 19:41:21 │        0 │
└─────────────────────┴─────────────────────┴──────────┘

nowInBlock64

استُحدثت في: v25.8.0 تعيد التاريخ والوقت الحاليين عند معالجة كل كتلة من البيانات، وذلك بالمللي ثانية. وعلى خلاف الدالة now64، فهي ليست تعبيرًا ثابتًا، وستكون القيمة المُعادة مختلفة من كتلة إلى أخرى في الاستعلامات طويلة التشغيل. يُستحسن استخدام هذه الدالة لتوليد الوقت الحالي في استعلامات INSERT SELECT طويلة التشغيل. الصياغة
nowInBlock64([scale[, timezone]])
المعاملات
  • scale — اختياري. حجم الـ tick (الدقة): ‏10^-precision ثانية. النطاق الصالح: [0 : 9]. تُستخدم عادةً القيم: 3 (افتراضيًا) (ميلي ثانية)، 6 (ميكروثانية)، 9 (نانوثانية). UInt8
  • timezone — اختياري. اسم المنطقة الزمنية للقيمة المعادة. String
القيمة المعادة تعيد التاريخ والوقت الحاليين عند معالجة كل كتلة من البيانات، مع دقة أقل من الثانية. DateTime64 أمثلة الفرق مع الدالة now64()
Query
SELECT
    now64(),
    nowInBlock64(),
    sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock
Response
┌─────────────────now64()─┬──────────nowInBlock64()─┬─sleep(1)─┐
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:29.534 │        0 │
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:30.535 │        0 │
│ 2025-07-29 17:07:29.526 │ 2025-07-29 17:07:31.535 │        0 │
└─────────────────────────┴─────────────────────────┴──────────┘

serverTimezone

أُضيفت في: v23.6.0 تُرجِع المنطقة الزمنية للخادم، أي قيمة إعداد timezone. إذا نُفِّذت الدالة في سياق جدول موزّع، فإنها تُنشئ عمودًا عاديًا بقيم تخص كل shard. وإلا، فإنها تُنتج قيمة ثابتة. الصيغة
serverTimezone()
الأسماء المستعارة: serverTimeZone الوسائط
  • لا شيء.
القيمة المُعادة تُرجع المنطقة الزمنية للخادم على هيئة String أمثلة مثال على الاستخدام
Query
SELECT serverTimeZone()
Response
┌─serverTimeZone()─┐
│ UTC              │
└──────────────────┘

subDate

أُضيف في: v23.9.0 يطرح الفاصل الزمني من التاريخ أو التاريخ والوقت المُقدَّمين، أو من تاريخ أو تاريخ ووقت مُرمَّزين كسلسلة. إذا نتج عن الطرح قيمة تقع خارج حدود نوع البيانات، فالنتيجة غير معرّفة. البنية
subDate(datetime, interval)
الوسيطات
  • datetime — التاريخ أو التاريخ والوقت الذي يُطرَح منه interval. Date أو Date32 أو DateTime أو DateTime64
  • interval — الفاصل الزمني المراد طرحه. Interval
القيمة المُعادة يعيد تاريخًا أو تاريخًا ووقتًا ناتجًا عن طرح interval من datetime. Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح فاصل زمني من تاريخ
Query
SELECT subDate(toDate('2018-01-01'), INTERVAL 3 YEAR)
Response
┌─subDate(toDate('2018-01-01'), toIntervalYear(3))─┐
│                                       2015-01-01 │
└──────────────────────────────────────────────────┘

subtractDays

أُضيفت في: v1.1.0 يطرح عددًا محددًا من الأيام من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية. البنية
subtractDays(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ يتضمن وقتًا، يُطرح منه العدد المحدد من الأيام. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الأيام المطلوب طرحها. (U)Int* أو Float*
القيمة المعادة يعيد datetime بعد طرح num يومًا منه. Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح الأيام من أنواع التاريخ المختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractDays(date, 31) AS subtract_days_with_date,
    subtractDays(date_time, 31) AS subtract_days_with_date_time,
    subtractDays(date_time_string, 31) AS subtract_days_with_date_time_string
Response
┌─subtract_days_with_date─┬─subtract_days_with_date_time─┬─subtract_days_with_date_time_string─┐
│              2023-12-01 │          2023-12-01 00:00:00 │             2023-12-01 00:00:00.000 │
└─────────────────────────┴──────────────────────────────┴─────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 day)
Response
┌─minus(CAST('⋯valDay(10))─┐
│               1998-06-06 │
└──────────────────────────┘

subtractHours

قُدِّمت في: v1.1.0 تطرح عددًا محددًا من الساعات من تاريخ، أو تاريخ ووقت، أو تاريخ مُمثَّل كسلسلة نصية، أو تاريخ ووقت مُمثَّل كسلسلة نصية. البنية
subtractHours(datetime, num)
الوسيطات
  • datetimeDate أو تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من الساعات. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الساعات المراد طرحه. (U)Int* أو Float*
القيمة المعادة يُرجع datetime بعد طرح num ساعة منه DateTime أو DateTime64(3) أمثلة طرح الساعات من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractHours(date, 12) AS subtract_hours_with_date,
    subtractHours(date_time, 12) AS subtract_hours_with_date_time,
    subtractHours(date_time_string, 12) AS subtract_hours_with_date_time_string
Response
┌─subtract_hours_with_date─┬─subtract_hours_with_date_time─┬─subtract_hours_with_date_time_string─┐
│      2023-12-31 12:00:00 │           2023-12-31 12:00:00 │              2023-12-31 12:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 hour)
Response
┌─minus(CAST('⋯alHour(10))─┐
│      1998-06-15 14:00:00 │
└──────────────────────────┘

subtractInterval

أُضيف في: v22.11.0 يضيف قيمة interval سالبة إلى interval أخرى أو إلى tuple من قيم interval. ملاحظة: ستُدمج قيم interval من النوع نفسه في قيمة interval واحدة. على سبيل المثال، إذا تم تمرير toIntervalDay(2) و toIntervalDay(1) فستكون النتيجة (1) بدلًا من (2,1). الصياغة
subtractInterval(interval_1, interval_2)
الوسائط
  • interval_1 — الفاصل الزمني الأول أو Tuple من الفواصل الزمنية. Interval أو Tuple(Interval)
  • interval_2 — الفاصل الزمني الثاني المراد عكس إشارته. Interval
القيمة المعادة تعيد Tuple من الفواصل الزمنية Tuple(T) أمثلة طرح الفواصل الزمنية
Query
SELECT subtractInterval(INTERVAL 1 DAY, INTERVAL 1 MONTH);
SELECT subtractInterval((INTERVAL 1 DAY, INTERVAL 1 YEAR), INTERVAL 1 MONTH);
SELECT subtractInterval(INTERVAL 2 DAY, INTERVAL 1 DAY);
Response
┌─subtractInterval(toIntervalDay(1), toIntervalMonth(1))─┐
│ (1,-1)                                                 │
└────────────────────────────────────────────────────────┘
┌─subtractInterval((toIntervalDay(1), toIntervalYear(1)), toIntervalMonth(1))─┐
│ (1,1,-1)                                                                    │
└─────────────────────────────────────────────────────────────────────────────┘
┌─subtractInterval(toIntervalDay(2), toIntervalDay(1))─┐
│ (1)                                                  │
└──────────────────────────────────────────────────────┘

subtractMicroseconds

أُضيف في: v22.6.0 يطرح عددًا محددًا من الميكروثواني من قيمة تاريخ ووقت أو من قيمة تاريخ ووقت مُرمَّزة كسلسلة نصية. الصياغة
subtractMicroseconds(datetime, num)
الوسائط
  • datetime — قيمة تاريخ ووقت يُطرح منها العدد المحدد من الميكروثواني. DateTime أو DateTime64 أو String
  • num — عدد الميكروثواني المراد طرحه. (U)Int* أو Float*
القيمة المُعادة تعيد datetime بعد طرح num ميكروثانية منه DateTime64 أمثلة طرح الميكروثواني من أنواع مختلفة من قيم التاريخ والوقت
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMicroseconds(date_time, 1000000) AS subtract_microseconds_with_date_time,
    subtractMicroseconds(date_time_string, 1000000) AS subtract_microseconds_with_date_time_string
Response
┌─subtract_microseconds_with_date_time─┬─subtract_microseconds_with_date_time_string─┐
│           2023-12-31 23:59:59.000000 │                  2023-12-31 23:59:59.000000 │
└──────────────────────────────────────┴─────────────────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 microsecond)
Response
┌─minus(CAST('1⋯osecond(10))─┐
│ 1998-06-15 23:59:59.999990 │
└────────────────────────────┘

subtractMilliseconds

أُضيفت في: v22.6.0 تطرح عددًا محددًا من المللي ثانية من قيمة تاريخ ووقت أو من قيمة تاريخ ووقت مُرمَّزة كسلسلة نصية. الصياغة
subtractMilliseconds(datetime, num)
الوسيطات
  • datetime — قيمة تاريخ ووقت يُطرح منها العدد المحدد من المللي ثانية. DateTime أو DateTime64 أو String
  • num — عدد المللي ثوانٍ المراد طرحه. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد طرح num مللي ثانية منه DateTime64 أمثلة طرح المللي ثانية من أنواع مختلفة من التاريخ والوقت
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMilliseconds(date_time, 1000) AS subtract_milliseconds_with_date_time,
    subtractMilliseconds(date_time_string, 1000) AS subtract_milliseconds_with_date_time_string
Response
┌─subtract_milliseconds_with_date_time─┬─subtract_milliseconds_with_date_time_string─┐
│              2023-12-31 23:59:59.000 │                     2023-12-31 23:59:59.000 │
└──────────────────────────────────────┴─────────────────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 millisecond)
Response
┌─minus(CAST('⋯second(10))─┐
│  1998-06-15 23:59:59.990 │
└──────────────────────────┘

subtractMinutes

أُضيف في: v1.1.0 يطرح عددًا محددًا من الدقائق من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّز كسلسلة. الصيغة
subtractMinutes(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت يُطرح منهما العدد المحدد من الدقائق. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الدقائق المطلوب طرحه. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد طرح num دقيقة منه من النوع DateTime أو DateTime64(3) أمثلة طرح الدقائق من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMinutes(date, 30) AS subtract_minutes_with_date,
    subtractMinutes(date_time, 30) AS subtract_minutes_with_date_time,
    subtractMinutes(date_time_string, 30) AS subtract_minutes_with_date_time_string
Response
┌─subtract_minutes_with_date─┬─subtract_minutes_with_date_time─┬─subtract_minutes_with_date_time_string─┐
│        2023-12-31 23:30:00 │             2023-12-31 23:30:00 │                2023-12-31 23:30:00.000 │
└────────────────────────────┴─────────────────────────────────┴────────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 minute)
Response
┌─minus(CAST('⋯Minute(10))─┐
│      1998-06-15 23:50:00 │
└──────────────────────────┘

subtractMonths

أُضيف في: v1.1.0 يطرح عددًا محددًا من الأشهر من تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية. الصيغة
subtractMonths(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت يُطرح منه عدد الأشهر المحدد. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الأشهر المراد طرحه. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد طرح num شهرًا منه Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح الأشهر من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractMonths(date, 1) AS subtract_months_with_date,
    subtractMonths(date_time, 1) AS subtract_months_with_date_time,
    subtractMonths(date_time_string, 1) AS subtract_months_with_date_time_string
Response
┌─subtract_months_with_date─┬─subtract_months_with_date_time─┬─subtract_months_with_date_time_string─┐
│                2023-12-01 │            2023-12-01 00:00:00 │               2023-12-01 00:00:00.000 │
└───────────────────────────┴────────────────────────────────┴───────────────────────────────────────┘
استخدام الصياغة البديلة لـ INTERVAL
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 month)
Response
┌─minus(CAST('⋯lMonth(10))─┐
│               1997-08-16 │
└──────────────────────────┘

subtractNanoseconds

أُضيف في: v20.1.0 يطرح عددًا محددًا من النانوثواني من قيمة تاريخ ووقت أو من تاريخ ووقت مُرمَّز كسلسلة نصية. البنية
subtractNanoseconds(datetime, num)
الوسيطات
  • datetime — تاريخ ووقت يُطرح منه عدد محدد من النانوثواني. DateTime أو DateTime64 أو String
  • num — عدد النانوثواني المطلوب طرحه. (U)Int* أو Float*
القيمة المعادة تعيد القيمة datetime بعد طرح num نانوثانية منها، من النوع DateTime64 أمثلة طرح النانوثواني من أنواع التاريخ والوقت المختلفة
Query
WITH
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractNanoseconds(date_time, 1000) AS subtract_nanoseconds_with_date_time,
    subtractNanoseconds(date_time_string, 1000) AS subtract_nanoseconds_with_date_time_string
Response
┌─subtract_nanoseconds_with_date_time─┬─subtract_nanoseconds_with_date_time_string─┐
│       2023-12-31 23:59:59.999999000 │              2023-12-31 23:59:59.999999000 │
└─────────────────────────────────────┴────────────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 nanosecond)
Response
┌─minus(CAST('19⋯anosecond(10))─┐
│ 1998-06-15 23:59:59.999999990 │
└───────────────────────────────┘

subtractQuarters

أُضيف في: v20.1.0 يطرح عددًا محددًا من أرباع السنة من تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية. الصيغة
subtractQuarters(datetime, num)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من أرباع السنة. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد أرباع السنة المراد طرحه. (U)Int* أو Float*
القيمة المعادة يعيد datetime بعد طرح num من أرباع السنة. Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح أرباع السنة من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractQuarters(date, 1) AS subtract_quarters_with_date,
    subtractQuarters(date_time, 1) AS subtract_quarters_with_date_time,
    subtractQuarters(date_time_string, 1) AS subtract_quarters_with_date_time_string
Response
┌─subtract_quarters_with_date─┬─subtract_quarters_with_date_time─┬─subtract_quarters_with_date_time_string─┐
│                  2023-10-01 │              2023-10-01 00:00:00 │                 2023-10-01 00:00:00.000 │
└─────────────────────────────┴──────────────────────────────────┴─────────────────────────────────────────┘
استخدام بنية INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 quarter)
Response
┌─minus(CAST('1⋯Quarter(10))─┐
│                1996-09-16 │
└───────────────────────────┘

subtractSeconds

أُضيف في: v1.1.0 يطرح عددًا محددًا من الثواني من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية. الصيغة
subtractSeconds(datetime, num)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من الثواني. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الثواني المطلوب طرحها. (U)Int* أو Float*
القيمة المُعادة يعيد datetime بعد طرح num ثانية منه DateTime أو DateTime64(3) أمثلة طرح الثواني من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractSeconds(date, 60) AS subtract_seconds_with_date,
    subtractSeconds(date_time, 60) AS subtract_seconds_with_date_time,
    subtractSeconds(date_time_string, 60) AS subtract_seconds_with_date_time_string
Response
┌─subtract_seconds_with_date─┬─subtract_seconds_with_date_time─┬─subtract_seconds_with_date_time_string─┐
│        2023-12-31 23:59:00 │             2023-12-31 23:59:00 │                2023-12-31 23:59:00.000 │
└────────────────────────────┴─────────────────────────────────┴────────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 second)
Response
┌─minus(CAST('⋯Second(10))─┐
│      1998-06-15 23:59:50 │
└──────────────────────────┘

subtractTupleOfIntervals

قُدِّم في: v22.11.0 يطرح بالتتابع مجموعة مرتبة من الفواصل الزمنية من تاريخ أو من تاريخ ووقت. البنية
subtractTupleOfIntervals(datetime, intervals)
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت تُطرح منه الفواصل الزمنية. Date أو Date32 أو DateTime أو DateTime64
  • intervals — Tuple من الفواصل الزمنية تُطرح من datetime. Tuple(Interval)
القيمة المُعادة يُرجع date بعد طرح intervals منه Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح Tuple من الفواصل الزمنية من التاريخ
Query
WITH toDate('2018-01-01') AS date SELECT subtractTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 YEAR))
Response
┌─subtractTupl⋯alYear(1)))─┐
│               2016-12-31 │
└──────────────────────────┘

subtractWeeks

أُضيفت في: v1.1.0 تطرح عددًا محددًا من الأسابيع من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّز كسلسلة نصية. البنية
subtractWeeks(datetime, num)
الوسيطات
  • datetimeDate أو تاريخ مع وقت يُطرح منه العدد المحدد من الأسابيع. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد الأسابيع المطلوب طرحه. (U)Int* أو Float*
القيمة المعادة تعيد datetime بعد طرح num أسبوعًا منه Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح أسابيع من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractWeeks(date, 1) AS subtract_weeks_with_date,
    subtractWeeks(date_time, 1) AS subtract_weeks_with_date_time,
    subtractWeeks(date_time_string, 1) AS subtract_weeks_with_date_time_string
Response
┌─subtract_weeks_with_date─┬─subtract_weeks_with_date_time─┬─subtract_weeks_with_date_time_string─┐
│               2023-12-25 │           2023-12-25 00:00:00 │              2023-12-25 00:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘
استخدام صياغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 week)
Response
┌─minus(CAST('⋯alWeek(10))─┐
│               1998-04-07 │
└──────────────────────────┘

subtractYears

أُضيف في: v1.1.0 يطرح عددًا محددًا من السنوات من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُمثَّلَين كسلسلة نصية. بناء الجملة
subtractYears(datetime, num)
الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت يُطرح منه عدد السنوات المحدد. Date أو Date32 أو DateTime أو DateTime64 أو String
  • num — عدد السنوات المطلوب طرحه. (U)Int* أو Float*
القيمة المُعادة تعيد datetime بعد طرح num سنة منه. Date أو Date32 أو DateTime أو DateTime64 أمثلة طرح السنوات من أنواع تاريخ مختلفة
Query
WITH
    toDate('2024-01-01') AS date,
    toDateTime('2024-01-01 00:00:00') AS date_time,
    '2024-01-01 00:00:00' AS date_time_string
SELECT
    subtractYears(date, 1) AS subtract_years_with_date,
    subtractYears(date_time, 1) AS subtract_years_with_date_time,
    subtractYears(date_time_string, 1) AS subtract_years_with_date_time_string
Response
┌─subtract_years_with_date─┬─subtract_years_with_date_time─┬─subtract_years_with_date_time_string─┐
│               2023-01-01 │           2023-01-01 00:00:00 │              2023-01-01 00:00:00.000 │
└──────────────────────────┴───────────────────────────────┴──────────────────────────────────────┘
استخدام صيغة INTERVAL البديلة
Query
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 year)
Response
┌─minus(CAST('⋯alYear(10))─┐
│               1988-06-16 │
└──────────────────────────┘

timeDiff

أُضيفت في: v23.4.0 تعيد الفرق بالثواني بين تاريخين أو بين قيمتَي تاريخ ووقت. ويُحسب الفرق على النحو التالي: enddate - startdate. هذه الدالة مكافئة لـ dateDiff('second', startdate, enddate). لحساب الفروق الزمنية بوحدات أخرى (مثل الساعات والأيام والأشهر وما إلى ذلك)، استخدم الدالة dateDiff بدلًا من ذلك. البنية
timeDiff(startdate, enddate)
المعاملات القيمة المُعادة تعيد الفرق بين enddate وstartdate معبَّرًا عنه بالثواني. Int64 أمثلة حساب الفرق الزمني بالثواني
Query
SELECT timeDiff(toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) AS res
Response
┌───res─┐
│ 90000 │
└───────┘
احسب الفرق الزمني وحوّله إلى ساعات
Query
SELECT timeDiff(toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) / 3600 AS hours
Response
┌─hours─┐
│    25 │
└───────┘
يعادل dateDiff بالثواني
Query
SELECT
    timeDiff(toDateTime('2021-12-29'), toDateTime('2022-01-01')) AS time_diff_result,
    dateDiff('second', toDateTime('2021-12-29'), toDateTime('2022-01-01')) AS date_diff_result
Response
┌─time_diff_result─┬─date_diff_result─┐
│           259200 │           259200 │
└──────────────────┴──────────────────┘

timeSlot

أُضيف في: v1.1.0 قرّب الوقت إلى بداية فترة زمنية مدتها نصف ساعة.
على الرغم من أن هذه الدالة يمكن أن تأخذ قيماً من النوعين الموسّعين Date32 وDateTime64 كوسيط، فإن تمرير قيمة وقت تقع خارج النطاق المعتاد إليها (من عام 1970 إلى 2149 بالنسبة إلى Date / وحتى 2106 بالنسبة إلى DateTime) سيؤدي إلى نتائج غير صحيحة.
الصياغة
timeSlot(time[, time_zone])
الوسيطات
  • time — الوقت المطلوب تقريبه إلى بداية فاصل زمني مدته نصف ساعة. DateTime أو Date32 أو DateTime64
  • time_zone — اختياري. قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية. String
القيمة المعادة يعيد الوقت بعد تقريبه إلى بداية فاصل زمني مدته نصف ساعة. DateTime أمثلة تقريب الوقت إلى فاصل زمني مدته نصف ساعة
Query
SELECT timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))
Response
┌─timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))─┐
│                                2000-01-02 03:00:00 │
└────────────────────────────────────────────────────┘

timeSlots

أُضيف في: v1.1.0 لفترة زمنية تبدأ عند StartTime وتستمر لمدة Duration ثانية، تُرجِع الدالة مصفوفة من اللحظات الزمنية تتكوّن من نقاط ضمن هذه الفترة بعد تقريبها نزولًا إلى Size بالثواني. Size وسيط اختياري مضبوط افتراضيًا على 1800 (30 دقيقة). وهذا ضروري، على سبيل المثال، عند البحث عن مرات عرض الصفحة في الجلسة المقابلة. بالنسبة إلى DateTime64، قد يختلف المقياس الخاص بالقيمة المُعادة عن مقياس StartTime. ويُؤخذ أعلى مقياس من بين جميع الوسيطات المُعطاة. البنية
timeSlots(StartTime, Duration[, Size])
الوسيطات
  • StartTime — وقت بدء الفاصل الزمني. DateTime أو DateTime64
  • Duration — مدة الفاصل الزمني بالثواني. UInt32 أو DateTime64
  • Size — اختياري. حجم الفترات الزمنية بالثواني. القيمة الافتراضية هي 1800 (30 دقيقة). UInt32 أو DateTime64
القيمة المُعادة يعيد مصفوفة من قيم DateTime/DateTime64 (نوع الإرجاع يطابق نوع StartTime). بالنسبة إلى DateTime64، قد يختلف مقياس القيمة المُعادة عن مقياس StartTime — إذ يُعتمد أعلى مقياس بين جميع الوسيطات المُعطاة. Array(DateTime) أو Array(DateTime64) أمثلة إنشاء فترات زمنية لفاصل زمني
Query
SELECT timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600));
SELECT timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299);
SELECT timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0))
Response
┌─timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600))─┐
│ ['2012-01-01 12:00:00','2012-01-01 12:30:00']               │
└─────────────────────────────────────────────────────────────┘
┌─timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299)─┐
│ ['1980-12-12 20:56:13','1980-12-12 21:01:12','1980-12-12 21:06:11']     │
└─────────────────────────────────────────────────────────────────────────┘
┌─timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0))─┐
│ ['1980-12-12 20:56:13.0000','1980-12-12 21:01:12.0000','1980-12-12 21:06:11.0000']                        │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────┘

timestamp

أُضيف في: v23.9.0 يحوّل الوسيط الأول expr إلى النوع DateTime64(6). إذا تم توفير وسيط ثانٍ expr_time، فإنه يضيف الوقت المحدد إلى القيمة بعد تحويلها. البنية
timestamp(expr[, expr_time])
الوسيطات
  • expr — تاريخ أو تاريخ متضمّن للوقت. String
  • expr_time — اختياري. الوقت المراد إضافته إلى القيمة المُحوَّلة. String
القيمة المعادة تُعيد القيمة المُحوَّلة لـ expr، أو expr بعد إضافة وقت إليه DateTime64(6) أمثلة تحويل سلسلة تاريخ إلى DateTime64(6)
Query
SELECT timestamp('2023-12-31') AS ts;
Response
┌─────────────────────────ts─┐
│ 2023-12-31 00:00:00.000000 │
└────────────────────────────┘
إضافة الوقت إلى سلسلة نصية للتاريخ
Query
SELECT timestamp('2023-12-31 12:00:00', '12:00:00.11') AS ts;
Response
┌─────────────────────────ts─┐
│ 2024-01-01 00:00:00.110000 │
└────────────────────────────┘

timezone

أُضيفت في: v21.4.0 تعيد اسم المنطقة الزمنية للجلسة الحالية، أو تحوّل إزاحة منطقة زمنية أو اسمها إلى الاسم القياسي للمنطقة الزمنية. الصيغة
timezone()
الأسماء البديلة: timeZone الوسائط
  • لا توجد.
القيمة المُعادة يُرجع اسم المنطقة الزمنية المعياري على هيئة String أمثلة مثال على الاستخدام
Query
SELECT timezone()
Response
┌─timezone()───────┐
│ Europe/Amsterdam │
└──────────────────┘

timezoneOf

أُضيف في: v21.4.0 يعيد اسم المنطقة الزمنية لقيمة من النوع DateTime أو DateTime64. الصياغة
timezoneOf(datetime)
الأسماء البديلة: timeZoneOf الوسائط
  • datetime — قيمة من النوع DateTime أو DateTime64
  • timezone — اختياري. اسم المنطقة الزمنية المطلوب تحويل قيمة datetime إليها. String
القيمة المعادة يرجع اسم المنطقة الزمنية لـ datetime من النوع String أمثلة مثال للاستخدام
Query
SELECT timezoneOf(now());
Response
┌─timezoneOf(now())─┐
│ Europe/Amsterdam  │
└───────────────────┘

timezoneOffset

أُضيفت في: v21.6.0 تُرجع فرق المنطقة الزمنية عن UTC بالثواني. وتأخذ الدالة في الحسبان التوقيت الصيفي والتغيّرات التاريخية في المنطقة الزمنية عند التاريخ والوقت المحددين. الصيغة
timezoneOffset(datetime)
الأسماء البديلة: timeZoneOffset الوسائط
  • datetime — قيمة DateTime المطلوب الحصول على إزاحة المنطقة الزمنية الخاصة بها. DateTime أو DateTime64
القيمة المُعادة تعيد إزاحة UTC بالثواني Int32 أمثلة مثال على الاستخدام
Query
SELECT toDateTime('2021-04-21 10:20:30', 'America/New_York') AS Time,
toTypeName(Time) AS Type,
timezoneOffset(Time) AS Offset_in_seconds,
(Offset_in_seconds / 3600) AS Offset_in_hours;
Response
┌────────────────Time─┬─Type─────────────────────────┬─Offset_in_seconds─┬─Offset_in_hours─┐
│ 2021-04-21 10:20:30 │ DateTime('America/New_York') │            -14400 │              -4 │
└─────────────────────┴──────────────────────────────┴───────────────────┴─────────────────┘

toDayOfMonth

أُضيفت في: v1.1.0 تعيد يوم الشهر (1-31) لقيمة من النوع Date أو DateTime. البنية
toDayOfMonth(datetime)
الأسماء البديلة: DAY, DAYOFMONTH الوسائط
  • datetime — قيمة من نوع Date أو تاريخ مع وقت لاستخراج يوم الشهر منها. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة تعيد يوم الشهر من التاريخ/الوقت المحدد UInt8 أمثلة مثال على الاستخدام
Query
SELECT toDayOfMonth(toDateTime('2023-04-21 10:20:30'))
Response
┌─toDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                              21 │
└─────────────────────────────────────────────────┘

toDayOfWeek

أُضيفت في: v1.1.0 تعيد رقم اليوم في الأسبوع لقيمة من النوع Date أو DateTime. تتيح لك الصيغة ذات الوسيطتين للدالة toDayOfWeek() تحديد ما إذا كان الأسبوع يبدأ يوم الاثنين أو يوم الأحد، وما إذا كانت القيمة المعادة يجب أن تكون ضمن النطاق من 0 إلى 6 أو من 1 إلى 7.
الوضعأول يوم في الأسبوعالنطاق
0الاثنين1-7: الاثنين = 1، الثلاثاء = 2، …، الأحد = 7
1الاثنين0-6: الاثنين = 0، الثلاثاء = 1، …، الأحد = 6
2الأحد0-6: الأحد = 0، الاثنين = 1، …، السبت = 6
3الأحد1-7: الأحد = 1، الاثنين = 2، …، السبت = 7
الصيغة
toDayOfWeek(datetime[, mode[, timezone]])
الأسماء البديلة: DAYOFWEEK الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لاستخراج يوم الأسبوع منه. Date أو Date32 أو DateTime أو DateTime64
  • mode — اختياري. عدد صحيح يحدد وضع الأسبوع (0-3). تكون القيمة الافتراضية 0 إذا لم يتم تحديده. UInt8
  • timezone — اختياري. المنطقة الزمنية المستخدمة في التحويل. String
القيمة المعادة تعيد يوم الأسبوع للقيمة Date أو DateTime المحددة. UInt8 أمثلة مثال على الاستخدام
Query
-- The following date is April 21, 2023, which was a Friday:
SELECT
    toDayOfWeek(toDateTime('2023-04-21')),
    toDayOfWeek(toDateTime('2023-04-21'), 1)
Response
┌─toDayOfWeek(toDateTime('2023-04-21'))─┬─toDayOfWeek(toDateTime('2023-04-21'), 1)─┐
│                                     5 │                                        4 │
└───────────────────────────────────────┴──────────────────────────────────────────┘

toDayOfYear

قُدِّمت في: v18.4.0 تُرجِع رقم اليوم ضمن السنة (1-366) لقيمة من النوع Date أو DateTime. الصياغة
toDayOfYear(datetime)
الأسماء المستعارة: DAYOFYEAR الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لاستخراج يوم السنة منه. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة تعيد يوم السنة لقيمة Date أو DateTime المُعطاة UInt16 أمثلة مثال على الاستخدام
Query
SELECT toDayOfYear(toDateTime('2023-04-21 10:20:30'))
Response
┌─toDayOfYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                            111 │
└────────────────────────────────────────────────┘

toDaysInMonth

أُضيفت في: v26.3.0 تعيد عدد الأيام في شهر قيمة من النوع Date أو DateTime. تكون القيمة المُعادة ضمن النطاق من 28 إلى 31. البنية
toDaysInMonth(datetime)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت يُستخرج منه عدد أيام الشهر. Date أو Date32 أو DateTime أو DateTime64
القيمة المُعادة تعيد عدد الأيام في شهر التاريخ/الوقت المحدد. UInt8 أمثلة مثال على الاستخدام
Query
SELECT toDaysInMonth(toDate('2023-02-01')), toDaysInMonth(toDate('2024-02-01')), toDaysInMonth(toDate('2023-01-01'))
Response
┌─toDaysInMonth(toDate('2023-02-01'))─┬─toDaysInMonth(toDate('2024-02-01'))─┬─toDaysInMonth(toDate('2023-01-01'))─┐
│                                  28 │                                  29 │                                  31 │
└─────────────────────────────────────┴─────────────────────────────────────┴─────────────────────────────────────┘

toDaysSinceYearZero

أُضيفت في: v23.9.0 بالنسبة إلى تاريخ معيّن، تُرجع عدد الأيام المنقضية منذ 1 January 0000 وفق التقويم الغريغوري الممتد المعرّف في ISO 8601. هذا الحساب مطابق للحساب المستخدم في الدالة TO_DAYS في MySQL. البنية
toDaysSinceYearZero(date[, time_zone])
الأسماء البديلة: TO_DAYS الوسيطات
  • date — التاريخ أو التاريخ والوقت المراد حساب عدد الأيام منذ السنة صفر له. Date أو Date32 أو DateTime أو DateTime64
  • time_zone — المنطقة الزمنية. String
القيمة المُعادة تعيد عدد الأيام المنقضية منذ التاريخ 0000-01-01. UInt32 أمثلة احسب الأيام منذ السنة صفر
Query
SELECT toDaysSinceYearZero(toDate('2023-09-08'))
Response
┌─toDaysSinceYearZero(toDate('2023-09-08')))─┐
│                                     713569 │
└────────────────────────────────────────────┘

toHour

أُضيفت في: v1.1.0 يعيد مكوّن الساعة (0-23) من قيمة DateTime أو DateTime64. البنية
toHour(datetime)
الأسماء البديلة: HOUR الوسائط
  • datetime — تاريخ ووقت لاستخراج الساعة منه. DateTime أو DateTime64
القيمة المُعادة تُرجِع قيمة الساعة (0-23) من datetime. UInt8 أمثلة مثال للاستخدام
Query
SELECT toHour(toDateTime('2023-04-21 10:20:30'))
Response
┌─toHour(toDateTime('2023-04-21 10:20:30'))─┐
│                                        10 │
└───────────────────────────────────────────┘

toISOWeek

أُضيفت في: v20.1.0 تُرجع رقم أسبوع ISO لتاريخ أو تاريخ ووقت. هذه دالة توافقية وتكافئ toWeek(date, 3). تبدأ أسابيع ISO يوم الاثنين، ويشمل الأسبوع الأول من السنة يوم 4 يناير. وفقًا للمعيار ISO 8601، تتراوح أرقام الأسابيع من 1 إلى 53. لاحظ أن التواريخ القريبة من بداية السنة أو نهايتها قد تُرجع رقم أسبوع من السنة السابقة أو التالية. على سبيل المثال، يعيد 29 ديسمبر 2025 الأسبوع 1 لأنه يقع ضمن أول أسبوع يشمل 4 يناير 2026. الصيغة
toISOWeek(datetime[, timezone])
المعاملات
  • datetime — تاريخ أو تاريخ مع وقت لاستخراج رقم أسبوع ISO منه. Date أو DateTime أو Date32 أو DateTime64
  • timezone — اختياري. المنطقة الزمنية. String
القيمة المعادة يعيد رقم أسبوع ISO وفقًا للمعيار ISO 8601. ويكون رقمًا بين 1 و53. UInt8 أمثلة الحصول على أرقام أسابيع ISO
Query
SELECT toDate('2016-12-27') AS date, toISOWeek(date) AS isoWeek
Response
┌───────date─┬─isoWeek─┐
│ 2016-12-27 │      52 │
└────────────┴─────────┘
قد يقع أسبوع ISO في سنة مختلفة
Query
SELECT toDate('2025-12-29') AS date, toISOWeek(date) AS isoWeek, toYear(date) AS year
Response
┌───────date─┬─isoWeek─┬─year─┐
│ 2025-12-29 │       1 │ 2025 │
└────────────┴─────────┴──────┘

toISOYear

أُضيف في: v18.4.0 يحوِّل تاريخًا أو تاريخًا مع وقت إلى رقم السنة وفق معيار ISO. البنية
toISOYear(datetime)
الوسائط القيمة المُعادة تعيد قيمة الإدخال بعد تحويلها إلى رقم سنة وفق معيار ISO. UInt16 أمثلة استخراج سنة ISO من قيم التاريخ
Query
SELECT
toISOYear(toDate('2024/10/02')) as year1,
toISOYear(toDateTime('2024-10-02 01:30:00')) as year2
Response
┌─week1─┬─week2─┐
│    40 │    40 │
└───────┴───────┘

toLastDayOfMonth

أُضيف في: v1.1.0 يُقرِّب قيمة من نوع تاريخ أو تاريخ مع وقت إلى آخر يوم في الشهر.
يمكن تهيئة نوع الإرجاع من خلال الإعداد enable_extended_results_for_datetime_functions.
الصياغة
toLastDayOfMonth(value)
الأسماء المستعارة: LAST_DAY الوسائط
  • value — التاريخ أو التاريخ مع الوقت المطلوب تقريبه للأعلى إلى آخر يوم من الشهر. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة يعيد تاريخ آخر يوم من الشهر للتاريخ أو التاريخ مع الوقت المحدد. Date أمثلة التقريب للأعلى إلى آخر يوم من الشهر
Query
SELECT toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))
Response
┌─toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-04-30 │
└─────────────────────────────────────────────────────┘

toLastDayOfWeek

أُضيف في: v23.5.0 يُقرِّب تاريخًا أو تاريخًا ووقتًا إلى أقرب يوم سبت أو أحد.
يمكن تهيئة نوع الإرجاع عبر ضبط enable_extended_results_for_datetime_functions.
البنية
toLastDayOfWeek(datetime[, mode[, timezone]])
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت لتحويله. Date أو DateTime أو Date32 أو DateTime64
  • mode — يحدد أول يوم في الأسبوع كما هو موضح في الدالة toWeek(). القيمة الافتراضية 0. UInt8
  • timezone — اختياري. المنطقة الزمنية المستخدمة في التحويل. إذا لم يتم تحديدها، تُستخدم المنطقة الزمنية الخاصة بالخادم. String
القيمة المعادة تعيد تاريخ أقرب يوم سبت أو أحد، في يوم التاريخ المحدد نفسه أو بعده، وذلك حسب الوضع. Date أو Date32 أمثلة التقريب للأعلى إلى أقرب يوم سبت أو أحد
Query
SELECT
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
    toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
    toLastDayOfWeek(toDate('2023-04-23')), /* a Sunday */
    toLastDayOfWeek(toDate('2023-04-23'), 1) /* a Sunday */
FORMAT Vertical
Response
Row 1:
──────
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')):      2023-04-23
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1):   2023-04-22
toLastDayOfWeek(toDate('2023-04-23')):                   2023-04-23
toLastDayOfWeek(toDate('2023-04-23'), 1):                2023-04-23

toMicrosecond

أُضيفت في: v25.7.0 تعيد مكوّن الميكروثانية (0-999999) من قيمة DateTime64. الصياغة
toMicrosecond(datetime)
الأسماء المستعارة: MICROSECOND الوسيطات
  • datetime — تاريخ ووقت لاستخراج الميكروثانية منه. DateTime64
القيمة المُعادة تعيد قيمة الميكروثانية ضمن الثانية (0 - 999999) في datetime. UInt32 أمثلة مثال على الاستخدام
Query
SELECT toMicrosecond(toDateTime64('2023-04-21 10:20:30.456789', 6));
Response
┌─toMicrosecond(toDateTime64('2023-04-21 10:20:30.456789', 6))─┐
│                                                       456789 │
└──────────────────────────────────────────────────────────────┘

toMillisecond

أُضيف في: v24.2.0 يعيد مكوّن الملّي ثانية (0-999) من قيمة DateTime أو DateTime64. البنية
toMillisecond(datetime)
الأسماء البديلة: MILLISECOND الوسيطات
  • datetime — تاريخ ووقت يُستخرج منه جزء الملّي ثانية. DateTime أو DateTime64
القيمة المُعادة تعيد قيمة الملّي ثانية ضمن الدقيقة (0 - 59) من datetime. UInt16 أمثلة مثال على الاستخدام
Query
SELECT toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3));
Response
┌──toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3))─┐
│                                                        456 │
└────────────────────────────────────────────────────────────┘

toMinute

أُضيفت في: v1.1.0 تعيد مكوّن الدقيقة (0-59) من قيمة Date أو DateTime. البنية
toMinute(datetime)
الأسماء البديلة: MINUTE الوسائط
  • datetime — قيمة تاريخ ووقت لاستخراج الدقيقة منها. DateTime أو DateTime64
القيمة المُعادة يُرجع دقيقة الساعة (0 - 59) من datetime. UInt8 أمثلة مثال على الاستخدام
Query
SELECT toMinute(toDateTime('2023-04-21 10:20:30'))
Response
┌─toMinute(toDateTime('2023-04-21 10:20:30'))─┐
│                                          20 │
└─────────────────────────────────────────────┘

toModifiedJulianDay

ظهر في: v21.1.0 يحوّل تاريخًا بصيغة نصية YYYY-MM-DD وفق التقويم الغريغوري الاستباقي إلى رقم اليوم اليولياني المعدّل من النوع Int32. تدعم هذه الدالة التواريخ من 0000-01-01 إلى 9999-12-31. وتُثير استثناءً إذا تعذّر تحليل الوسيطة كتاريخ، أو كان التاريخ غير صالح. الصياغة
toModifiedJulianDay(date)
الوسيطات القيمة المعادة يُرجع رقم اليوم اليولياني المعدّل. Int32 أمثلة تحويل التاريخ إلى رقم اليوم اليولياني المعدّل
Query
SELECT toModifiedJulianDay('2020-01-01')
Response
┌─toModifiedJulianDay('2020-01-01')─┐
│                             58849 │
└───────────────────────────────────┘

toModifiedJulianDayOrNull

أُضيفت في: v21.1.0 مشابهة لـ toModifiedJulianDay()، ولكن بدلًا من إطلاق استثناءات، تُرجع NULL. البنية
toModifiedJulianDayOrNull(date)
الوسيطات القيمة المعادة تعيد رقم اليوم اليولياني المعدّل إذا كانت قيمة date صالحة، وإلا تُعيد null. Nullable(Int32) أمثلة تحويل التاريخ إلى رقم اليوم اليولياني المعدّل مع معالجة null
Query
SELECT toModifiedJulianDayOrNull('2020-01-01');
SELECT toModifiedJulianDayOrNull('0000-00-00'); -- invalid date, returns NULL
Response
┌─toModifiedJu⋯020-01-01')─┐
│                    58849 │
└──────────────────────────┘
┌─toModifiedJu⋯000-00-00')─┐
│                     ᴺᵁᴸᴸ │
└──────────────────────────┘

toMonday

أُضيف في: v1.1.0 يُقرِّب التاريخ أو التاريخ مع الوقت نزولًا إلى يوم الاثنين من الأسبوع نفسه. ويُرجع التاريخ.
يمكن تهيئة نوع الإرجاع عبر تعيين enable_extended_results_for_datetime_functions.
البنية
toMonday(value)
المعاملات
  • value — تاريخ أو تاريخ متضمّن لوقت، لتقريبه إلى يوم الاثنين من ذلك الأسبوع. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة تاريخ يوم الاثنين من الأسبوع نفسه للتاريخ أو التاريخ المتضمّن لوقت المُعطى. Date أمثلة التقريب إلى يوم الاثنين من الأسبوع
Query
SELECT
toMonday(toDateTime('2023-04-21 10:20:30')), -- A Friday
toMonday(toDate('2023-04-24'));              -- Already a Monday
Response
┌─toMonday(toDateTime('2023-04-21 10:20:30'))─┬─toMonday(toDate('2023-04-24'))─┐
│                                  2023-04-17 │                     2023-04-24 │
└─────────────────────────────────────────────┴────────────────────────────────┘

toMonth

أُضيفت في: v1.1.0 تعيد مكوّن الشهر (1-12) من قيمة Date أو DateTime. الصيغة
toMonth(datetime)
الأسماء البديلة: MONTH الوسائط القيمة المعادة تعيد رقم شهر التاريخ/الوقت المحدد من النوع UInt8 أمثلة مثال على الاستخدام
Query
SELECT toMonth(toDateTime('2023-04-21 10:20:30'))
Response
┌─toMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                          4 │
└────────────────────────────────────────────┘

toMonthNumSinceEpoch

استُحدث في: v25.3.0 يعيد عدد الأشهر منذ عام 1970 الصيغة
toMonthNumSinceEpoch(date)
المعاملات القيمة المُعادة عدد صحيح موجب أمثلة مثال
Query
SELECT toMonthNumSinceEpoch(toDate('2024-10-01'))
Response
657

toNanosecond

قُدِّم في: v25.7.0 يعيد مكوّن النانوثانية (0-999999999) من قيمة DateTime64. الصياغة
toNanosecond(datetime)
الأسماء البديلة: NANOSECOND الوسيطات
  • datetime — قيمة تاريخ ووقت يُستخرج منها جزء النانوثانية. DateTime64
القيمة المعادة تُرجع النانوثانية ضمن الثانية (0 - 999999999) من datetime. UInt32 أمثلة مثال على الاستخدام
Query
SELECT toNanosecond(toDateTime64('2023-04-21 10:20:30.123456789', 9));
Response
┌─toNanosecond(toDateTime64('2023-04-21 10:20:30.123456789', 9))─┐
│                                                      123456789 │
└────────────────────────────────────────────────────────────────┘

toQuarter

أُضيفت في: v1.1.0 تُرجِع ربع السنة (1-4) لقيمة Date أو DateTime معيّنة. الصياغة
toQuarter(datetime)
الأسماء البديلة: QUARTER الوسيطات
  • datetime — تاريخ أو تاريخ مع وقت لاستخراج ربع السنة منه. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة تعيد ربع السنة للتاريخ/الوقت المحدد UInt8 أمثلة مثال على الاستخدام
Query
SELECT toQuarter(toDateTime('2023-04-21 10:20:30'))
Response
┌─toQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│                                            2 │
└──────────────────────────────────────────────┘

toRelativeDayNum

أُضيفت في: v1.1.0 تحوِّل قيمة من نوع تاريخ أو تاريخ ووقت إلى عدد الأيام المنقضية منذ نقطة ثابتة معيّنة في الماضي. أما النقطة الزمنية الدقيقة فهي تفصيل متعلق بالتنفيذ، ولذلك فهذه الدالة غير مخصّصة للاستخدام بشكل مستقل. والغرض الرئيسي من هذه الدالة هو حساب الفرق بالأيام بين تاريخين أو قيمتين من نوع تاريخ ووقت، مثل: toRelativeDayNum(dt1) - toRelativeDayNum(dt2). البنية
toRelativeDayNum(date)
الوسائط القيمة المعادة يعيد عدد الأيام بدءًا من نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام الأيام النسبية
Query
SELECT toRelativeDayNum(toDate('2023-04-01')) - toRelativeDayNum(toDate('2023-01-01'))
Response
┌─minus(toRela⋯3-01-01')))─┐
│                       90 │
└──────────────────────────┘

toRelativeHourNum

أُضيفت في: v1.1.0 تحوّل تاريخًا أو تاريخًا ووقتًا إلى عدد الساعات المنقضية منذ نقطة ثابتة معيّنة في الماضي. تمثّل النقطة الزمنية الدقيقة تفصيلًا تنفيذيًا، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل. الغرض الرئيسي من هذه الدالة هو حساب الفرق بالساعات بين تاريخين أو بين قيمتَي تاريخ ووقت، على سبيل المثال: toRelativeHourNum(dt1) - toRelativeHourNum(dt2). البنية
toRelativeHourNum(date)
الوسائط القيمة المُعادة يُرجع عدد الساعات منذ نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة استخراج أرقام الساعات النسبية
Query
SELECT toRelativeHourNum(toDateTime('2023-01-01 12:00:00')) - toRelativeHourNum(toDateTime('2023-01-01 00:00:00')) AS hours_difference
Response
┌─hours_difference─┐
│               12 │
└──────────────────┘

toRelativeMinuteNum

أُضيفت في: v1.1.0 تحوّل تاريخًا أو تاريخًا مع وقت إلى عدد الدقائق المنقضية منذ نقطة ثابتة معيّنة في الماضي. النقطة الزمنية الدقيقة هي تفصيل متعلق بالتنفيذ، ولذلك لا يُقصد استخدام هذه الدالة بمفردها. الغرض الرئيسي من هذه الدالة هو حساب الفرق بالدقائق بين تاريخين أو بين قيمتَي تاريخ مع وقت، مثل toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2). الصيغة
toRelativeMinuteNum(date)
الوسيطات القيمة المُعادة يعيد عدد الدقائق منذ نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام الدقائق النسبية
Query
SELECT toRelativeMinuteNum(toDateTime('2023-01-01 00:30:00')) - toRelativeMinuteNum(toDateTime('2023-01-01 00:00:00')) AS minutes_difference
Response
┌─minutes_difference─┐
│                 30 │
└────────────────────┘

toRelativeMonthNum

قُدِّمت في: v1.1.0 تحوّل تاريخًا أو تاريخًا مع وقت إلى عدد الأشهر المنقضية منذ نقطة ثابتة معيّنة في الماضي. النقطة الزمنية الدقيقة هي تفصيل متعلق بالتنفيذ، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل. الغرض الرئيسي من هذه الدالة هو حساب الفرق بالأشهر بين تاريخين أو تاريخين مع وقت، على سبيل المثال: toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2). الصياغة
toRelativeMonthNum(date)
الوسائط القيمة المعادة يُرجع عدد الأشهر منذ نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام الأشهر النسبية
Query
SELECT toRelativeMonthNum(toDate('2023-04-01')) - toRelativeMonthNum(toDate('2023-01-01')) AS months_difference
Response
┌─months_difference─┐
│                 3 │
└───────────────────┘

toRelativeQuarterNum

أُضيفت في: v1.1.0 تحوِّل تاريخًا أو تاريخًا مصحوبًا بوقت إلى عدد الأرباع المنقضية منذ نقطة ثابتة معيّنة في الماضي. النقطة الزمنية الدقيقة هي من تفاصيل التنفيذ، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل. والغرض الرئيسي من هذه الدالة هو حساب الفرق في الأرباع بين تاريخين أو بين قيمتَي تاريخ مصحوب بوقت، على سبيل المثال: toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2). الصيغة
toRelativeQuarterNum(date)
الوسائط القيمة المعادة تُرجع عدد أرباع السنة من نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام أرباع السنة النسبية
Query
SELECT toRelativeQuarterNum(toDate('2023-04-01')) - toRelativeQuarterNum(toDate('2023-01-01')) AS quarters_difference
Response
┌─quarters_difference─┐
│                   1 │
└─────────────────────┘

toRelativeSecondNum

أُضيفت في: v1.1.0 تحوِّل تاريخًا أو تاريخًا يتضمّن وقتًا إلى عدد الثواني المنقضية منذ نقطة ثابتة معيّنة في الماضي. النقطة الزمنية الدقيقة هي تفصيل خاص بالتنفيذ، ولذلك لا يُقصد استخدام هذه الدالة بصورة مستقلة. الغرض الأساسي من هذه الدالة هو حساب الفرق بالثواني بين تاريخين أو بين قيمتَي تاريخ مع وقت، على سبيل المثال toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2). الصياغة
toRelativeSecondNum(date)
المعاملات القيمة المُعادة يعيد عدد الثواني منذ نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام الثواني النسبية
Query
SELECT toRelativeSecondNum(toDateTime('2023-01-01 00:01:00')) - toRelativeSecondNum(toDateTime('2023-01-01 00:00:00')) AS seconds_difference
Response
┌─seconds_difference─┐
│                 60 │
└────────────────────┘

toRelativeWeekNum

قُدِّمت في: v1.1.0 تحوِّل قيمة تاريخ أو تاريخ مع وقت إلى عدد الأسابيع المنقضية منذ نقطة ثابتة معيّنة في الماضي. أما النقطة الزمنية الدقيقة فهي من تفاصيل التنفيذ، لذلك فهذه الدالة غير مخصّصة للاستخدام بمفردها. والغرض الرئيسي من هذه الدالة هو حساب الفرق بالأسابيع بين تاريخين أو قيمتي تاريخ مع وقت، على سبيل المثال: toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2). البنية
toRelativeWeekNum(date)
الوسيطات القيمة المعادة تعيد عدد الأسابيع بدءًا من نقطة مرجعية ثابتة في الماضي. UInt32 أمثلة الحصول على أرقام الأسابيع النسبية
Query
SELECT toRelativeWeekNum(toDate('2023-01-08')) - toRelativeWeekNum(toDate('2023-01-01')) AS weeks_difference
Response
┌─weeks_difference─┐
│                1 │
└──────────────────┘

toRelativeYearNum

أُضيفت في: v1.1.0 تحوِّل تاريخًا أو تاريخًا يتضمّن وقتًا إلى عدد السنوات المنقضية منذ نقطة ثابتة معيّنة في الماضي. والنقطة الزمنية الدقيقة هي من تفاصيل التنفيذ، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل. والغرض الرئيسي من هذه الدالة هو حساب الفرق بالسنوات بين تاريخين أو تاريخين يتضمّنان وقتًا، على سبيل المثال: toRelativeYearNum(dt1) - toRelativeYearNum(dt2). البنية
toRelativeYearNum(date)
الوسائط القيمة المُعادة يعيد عدد السنوات بدءًا من نقطة مرجعية ثابتة في الماضي. UInt16 أمثلة الحصول على أرقام السنوات النسبية
Query
SELECT toRelativeYearNum('2010-10-01'::DateTime) - toRelativeYearNum('2000-01-01'::DateTime)
Response
┌─minus(toRela⋯ateTime')))─┐
│                       10 │
└──────────────────────────┘

toSecond

أُضيف في: v1.1.0 يعيد مكوّن الثواني (0-59) من قيمة DateTime أو DateTime64. البنية
toSecond(datetime)
الأسماء البديلة: SECOND الوسائط
  • datetime — تاريخ ووقت لاستخراج الثواني منه. DateTime أو DateTime64
القيمة المُعادة تُرجع الثانية ضمن الدقيقة (0 - 59) من datetime. UInt8 أمثلة مثال على الاستخدام
Query
SELECT toSecond(toDateTime('2023-04-21 10:20:30'))
Response
┌─toSecond(toDateTime('2023-04-21 10:20:30'))─┐
│                                          30 │
└─────────────────────────────────────────────┘

toStartOfDay

أُضيف في: v1.1.0 يقرّب قيمة تاريخ ووقت نزولًا إلى بداية اليوم.
يمكن تهيئة نوع الإرجاع عبر تعيين enable_extended_results_for_datetime_functions.
الصيغة
toStartOfDay(datetime)
الوسائط
  • datetime — تاريخ أو تاريخ مع وقت لتقريبه. Date أو DateTime
القيمة المعادة يُرجع تاريخًا مع وقت بعد تقريبه نزولًا إلى بداية اليوم. DateTime أو DateTime64 أمثلة التقريب نزولًا إلى بداية اليوم
Query
SELECT toStartOfDay(toDateTime('2023-04-21 10:20:30'))
Response
┌─toStartOfDay(toDateTime('2023-04-21 10:20:30'))─┐
│                             2023-04-21 00:00:00 │
└─────────────────────────────────────────────────┘

toStartOfFifteenMinutes

أُضيفت في: v1.1.0 تُنزِّل قيمة التاريخ والوقت إلى بداية الفاصل الزمني البالغ خمس عشرة دقيقة.
يمكن تهيئة نوع الإرجاع عبر تعيين enable_extended_results_for_datetime_functions.
الصياغة
toStartOfFifteenMinutes(datetime)
المعاملات
  • datetime — تاريخ أو تاريخ ووقت مطلوب تقريبه. DateTime أو DateTime64
القيمة المُعادة يعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته خمس عشرة دقيقة. DateTime أو DateTime64 أمثلة مثال
Query
SELECT
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Response
Row 1:
──────
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:15:00
toStartOfFifteenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:15:00

toStartOfFiveMinutes

أُضيفت في: v22.6.0 تُقرِّب قيمة تاريخ ووقت نزولًا إلى بداية فترة الخمس دقائق الأقرب.
يمكن تهيئة نوع الإرجاع من خلال الإعداد enable_extended_results_for_datetime_functions.
البنية
toStartOfFiveMinutes(datetime)
الأسماء البديلة: toStartOfFiveMinute الوسيطات
  • datetime — تاريخ ووقت المطلوب تقريبهما. DateTime أو DateTime64
القيمة المُعادة تعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته خمس دقائق. DateTime أو DateTime64 أمثلة مثال
Query
SELECT
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Response
Row 1:
──────
toStartOfFiveMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:15:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfFiveMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfHour

تم تقديمه في: v1.1.0 يقرّب تاريخًا ووقتًا نزولًا إلى بداية الساعة.
يمكن تهيئة نوع الإرجاع من خلال ضبط enable_extended_results_for_datetime_functions.
الصيغة
toStartOfHour(datetime)
الوسيطات
  • datetime — قيمة تاريخية تتضمن وقتًا لتقريبها. DateTime أو DateTime64
القيمة المُعادة يعيد القيمة التاريخية بعد تقريبها نزولًا إلى بداية الساعة. DateTime أو DateTime64 أمثلة التقريب نزولًا إلى بداية الساعة
Query
SELECT
    toStartOfHour(toDateTime('2023-04-21 10:20:30'));
Response
┌─────────────────res─┬─toTypeName(res)─┐
│ 2023-04-21 10:00:00 │ DateTime        │
└─────────────────────┴─────────────────┘

toStartOfISOYear

أُضيفت في: v1.1.0 يُنزل تاريخًا أو تاريخًا يتضمن وقتًا إلى اليوم الأول من سنة ISO، والتي قد تختلف عن السنة الميلادية العادية. راجع ISO week date.
يمكن تهيئة نوع الإرجاع عن طريق ضبط enable_extended_results_for_datetime_functions.
البنية
toStartOfISOYear(value)
الوسائط
  • value — التاريخ أو التاريخ مع وقت المراد تقريبُه نزولًا إلى اليوم الأول من سنة ISO. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة يعيد اليوم الأول من سنة ISO للتاريخ أو التاريخ مع وقت المحدد. Date أمثلة التقريب نزولًا إلى اليوم الأول من سنة ISO
Query
SELECT toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))
Response
┌─toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-01-02 │
└─────────────────────────────────────────────────────┘

toStartOfInterval

أُضيفت في: v20.1.0 تُعمِّم هذه الدالة دوال toStartOf*() الأخرى باستخدام البنية toStartOfInterval(date_or_date_with_time, INTERVAL x unit [, time_zone]). على سبيل المثال،
  • تُرجع toStartOfInterval(t, INTERVAL 1 YEAR) النتيجة نفسها التي تُرجعها toStartOfYear(t),
  • تُرجع toStartOfInterval(t, INTERVAL 1 MONTH) النتيجة نفسها التي تُرجعها toStartOfMonth(t),
  • تُرجع toStartOfInterval(t, INTERVAL 1 DAY) النتيجة نفسها التي تُرجعها toStartOfDay(t),
  • تُرجع toStartOfInterval(t, INTERVAL 15 MINUTE) النتيجة نفسها التي تُرجعها toStartOfFifteenMinutes(t).
يُجرى الحساب بالاستناد إلى نقاط زمنية محددة:
IntervalStart
YEARالسنة 0
QUARTER1900 Q1
MONTHيناير 1900
WEEK1970، الأسبوع الأول (01-05)
DAY1970-01-01
HOUR(*)
MINUTE1970-01-01 00:00:00
SECOND1970-01-01 00:00:00
MILLISECOND1970-01-01 00:00:00
MICROSECOND1970-01-01 00:00:00
NANOSECOND1970-01-01 00:00:00
(*) فترات الساعات حالة خاصة: يُجرى الحساب دائمًا بالاستناد إلى 00:00:00 (منتصف الليل) من اليوم الحالي. ونتيجةً لذلك، فإن
قيم الساعات من 1 إلى 23 فقط هي المفيدة.
إذا جرى تحديد الوحدة WEEK، فإن toStartOfInterval يفترض أن الأسابيع تبدأ يوم الاثنين. لاحظ أن هذا السلوك يختلف عن سلوك الدالة toStartOfWeek، حيث تبدأ الأسابيع افتراضيًا يوم الأحد. تحاكي صيغة التحميل الزائد الثانية الدالة time_bucket() في TimescaleDB، وكذلك الدالة date_bin() في PostgreSQL. البنية
toStartOfInterval(value, INTERVAL x unit[, time_zone])
toStartOfInterval(value, INTERVAL x unit[, origin[, time_zone]])
الأسماء البديلة: time_bucket, date_bin المعاملات
  • value — قيمة تاريخ أو تاريخ مع وقت تُقرَّب نزولًا. Date أو DateTime أو DateTime64
  • x — رقم يمثّل طول الفاصل الزمني. - unit — وحدة الفاصل الزمني: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND. - time_zone — اختياري. اسم المنطقة الزمنية كسلسلة نصية. - origin — اختياري. نقطة بدء الحساب (في التوقيع الثاني فقط).
القيمة المُعادة تعيد بداية الفاصل الزمني الذي تقع ضمنه قيمة الإدخال. DateTime أمثلة تقريب الفاصل الزمني الأساسي
Query
SELECT toStartOfInterval(toDateTime('2023-01-15 14:30:00'), INTERVAL 1 MONTH)
Response
┌─toStartOfInt⋯alMonth(1))─┐
│               2023-01-01 │
└──────────────────────────┘
استخدام نقطة الأصل
Query
SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30'))
Response
┌─toStartOfInt⋯14:35:30'))─┐
│      2023-01-01 14:44:30 │
└──────────────────────────┘

toStartOfMicrosecond

أُضيفت في: v22.6.0 تُقرِّب قيمة تاريخ ووقت نزولًا إلى بداية الميكروثانية. الصيغة
toStartOfMicrosecond(datetime[, timezone])
الوسائط
  • datetime — التاريخ والوقت. DateTime64
  • timezone — اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعامل value. String
القيمة المُعادة قيمة الإدخال بعد إزالة الأجزاء الأقل من الميكروثانية DateTime64 أمثلة استعلام من دون منطقة زمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64);
Response
┌────toStartOfMicrosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999000 │
└───────────────────────────────┘
استعلام مع تحديد المنطقة الزمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64, 'Asia/Istanbul');
Response
┌─toStartOfMicrosecond(dt64, 'Asia/Istanbul')─┐
│               2020-01-01 12:20:30.999999000 │
└─────────────────────────────────────────────┘

toStartOfMillisecond

أُضيف في: v22.6.0 يقرّب تاريخًا مع وقت نزولًا إلى بداية الملّي ثانية. البنية
toStartOfMillisecond(datetime[, timezone])
الوسائط
  • datetime — التاريخ والوقت. DateTime64
  • timezone — اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعلَمة value. String
القيمة المُعادة قيمة الإدخال مع أجزاء أصغر من المللي ثانية. DateTime64 أمثلة استعلام بدون منطقة زمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64);
Response
┌────toStartOfMillisecond(dt64)─┐
│ 2020-01-01 10:20:30.999000000 │
└───────────────────────────────┘
استعلام مع تحديد المنطقة الزمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64, 'Asia/Istanbul');
Response
┌─toStartOfMillisecond(dt64, 'Asia/Istanbul')─┐
│               2020-01-01 12:20:30.999000000 │
└─────────────────────────────────────────────┘

toStartOfMinute

أُضيفت في: v1.1.0 تُقرِّب قيمة تاريخية تتضمن وقتًا نزولًا إلى بداية الدقيقة.
يمكن تهيئة نوع الإرجاع عن طريق ضبط enable_extended_results_for_datetime_functions.
الصياغة
toStartOfMinute(datetime)
الوسائط القيمة المُعادة يعيد تاريخًا ووقتًا بعد تقريبهما نزولًا إلى بداية الدقيقة. DateTime أو DateTime64 أمثلة التقريب نزولًا إلى بداية الدقيقة
Query
SELECT
    toStartOfMinute(toDateTime('2023-04-21 10:20:30')),
    toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8))
FORMAT Vertical
Response
Row 1:
──────
toStartOfMinute(toDateTime('2023-04-21 10:20:30')):           2023-04-21 10:20:00
toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8)): 2023-04-21 10:20:00

toStartOfMonth

أُضيف في: v1.1.0 يقرّب تاريخًا أو تاريخًا مع وقت إلى اليوم الأول من الشهر.
يمكن تهيئة نوع الإرجاع من خلال إعداد enable_extended_results_for_datetime_functions.
الصيغة
toStartOfMonth(value)
المعاملات
  • value — التاريخ أو التاريخ والوقت المراد تقريبُه نزولًا إلى اليوم الأول من الشهر. Date أو Date32 أو DateTime أو DateTime64
القيمة المُعادة تُرجِع اليوم الأول من الشهر للتاريخ أو التاريخ والوقت المحدد. Date أمثلة التقريب نزولًا إلى اليوم الأول من الشهر
Query
SELECT toStartOfMonth(toDateTime('2023-04-21 10:20:30'))
Response
┌─toStartOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│                                        2023-04-01 │
└───────────────────────────────────────────────────┘

toStartOfNanosecond

تم تقديمه في: v22.6.0 يقرّب قيمة تاريخ مع وقت نزولًا إلى بداية النانوثانية. البنية
toStartOfNanosecond(datetime[, timezone])
الوسيطات
  • datetime — التاريخ والوقت. DateTime64
  • timezone — اختياري. المنطقة الزمنية للقيمة المعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعامل value. String
القيمة المعادة قيمة الإدخال بدقة النانوثانية. DateTime64 أمثلة استعلام بدون منطقة زمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64);
Response
┌─────toStartOfNanosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999999 │
└───────────────────────────────┘
استعلام مع تحديد المنطقة الزمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64, 'Asia/Istanbul');
Response
┌─toStartOfNanosecond(dt64, 'Asia/Istanbul')─┐
│              2020-01-01 12:20:30.999999999 │
└────────────────────────────────────────────┘

toStartOfQuarter

أُضيف في: v1.1.0 يقرّب تاريخًا أو قيمة تاريخ ووقت نزولًا إلى اليوم الأول من الربع. ويكون اليوم الأول من الربع أحد التواريخ التالية: 1 يناير، أو 1 أبريل، أو 1 يوليو، أو 1 أكتوبر.
يمكن ضبط نوع الإرجاع عن طريق تعيين enable_extended_results_for_datetime_functions.
الصيغة
toStartOfQuarter(value)
الوسيطات
  • value — التاريخ أو التاريخ والوقت المراد تقريبه نزولًا إلى اليوم الأول من الربع. Date أو Date32 أو DateTime أو DateTime64
القيمة المُعادة يعيد اليوم الأول من الربع للتاريخ أو التاريخ والوقت المُعطى. Date أمثلة التقريب نزولًا إلى اليوم الأول من الربع
Query
SELECT toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))
Response
┌─toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│                                          2023-04-01 │
└─────────────────────────────────────────────────────┘

toStartOfSecond

أُضيفت في: v20.5.0 يُنزِّل قيمة تاريخ مع وقت إلى بداية الثانية. الصيغة
toStartOfSecond(datetime[, timezone])
الوسائط
  • datetime — التاريخ والوقت المراد حذف الأجزاء من الثانية منه. DateTime64
  • timezone — اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية الخاصة بالمعامل value. String
القيمة المُعادة تعيد قيمة الإدخال من دون الأجزاء من الثانية. DateTime64 أمثلة استعلام بدون منطقة زمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64);
Response
┌───toStartOfSecond(dt64)─┐
│ 2020-01-01 10:20:30.000 │
└─────────────────────────┘
استعلام مع تحديد المنطقة الزمنية
Query
WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64, 'Asia/Istanbul');
Response
┌─toStartOfSecond(dt64, 'Asia/Istanbul')─┐
│                2020-01-01 13:20:30.000 │
└────────────────────────────────────────┘

toStartOfTenMinutes

أُضيف في: v20.1.0 يقرّب قيمة تاريخ مع وقت بالتنزيل إلى بداية أقرب فترة من عشر دقائق.
يمكن تهيئة نوع القيمة المعادة عن طريق تعيين enable_extended_results_for_datetime_functions.
البنية
toStartOfTenMinutes(datetime)
الوسيطات القيمة المُعادة تعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته عشر دقائق. DateTime أو DateTime64 أمثلة مثال
Query
SELECT
    toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')),
    toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00'))
FORMAT Vertical
Response
Row 1:
──────
toStartOfTenMinutes(toDateTime('2023-04-21 10:17:00')): 2023-04-21 10:10:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:20:00')): 2023-04-21 10:20:00
toStartOfTenMinutes(toDateTime('2023-04-21 10:23:00')): 2023-04-21 10:20:00

toStartOfWeek

أُضيف في: v20.1.0 يُقرِّب قيمة من نوع تاريخ أو تاريخ مع وقت نزولًا إلى أقرب يوم أحد أو اثنين.
يمكن تهيئة نوع الإرجاع من خلال ضبط enable_extended_results_for_datetime_functions.
الصيغة
toStartOfWeek(datetime[, mode[, timezone]])
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت للتحويل. Date أو DateTime أو Date32 أو DateTime64
  • mode — يحدد أول يوم في الأسبوع كما هو موضح في الدالة toWeek(). القيمة الافتراضية 0. UInt8
  • timezone — المنطقة الزمنية المستخدمة في التحويل. إذا لم يتم تحديدها، فستُستخدم المنطقة الزمنية الخاصة بـ الخادم. String
القيمة المعادة يعيد تاريخ أقرب يوم أحد أو اثنين يوافق التاريخ المحدد أو يسبقه، وذلك حسب الوضع. Date أو Date32 أمثلة التقريب لأسفل إلى أقرب يوم أحد أو اثنين
Query
SELECT
        toStartOfWeek(toDateTime('2023-04-21 10:20:30')), /* a Friday */
        toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1), /* a Friday */
        toStartOfWeek(toDate('2023-04-24')), /* a Monday */
        toStartOfWeek(toDate('2023-04-24'), 1) /* a Monday */
    FORMAT Vertical
Response
Row 1:
    ──────
    toStartOfWeek(toDateTime('2023-04-21 10:20:30')):      2023-04-17
    toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1):   2023-04-17
    toStartOfWeek(toDate('2023-04-24')):                   2023-04-24
    toStartOfWeek(toDate('2023-04-24'), 1):                2023-04-24

toStartOfYear

قُدِّمت في: v1.1.0 تُنزِّل قيمة من نوع تاريخ أو تاريخ مع وقت إلى اليوم الأول من السنة. وتُرجِع التاريخ ككائن Date.
يمكن تهيئة نوع الإرجاع عبر ضبط enable_extended_results_for_datetime_functions.
البنية
toStartOfYear(value)
المعاملات
  • value — التاريخ أو التاريخ مع الوقت المراد تقريبه لأسفل. Date أو Date32 أو DateTime أو DateTime64
القيمة المعادة اليوم الأول من السنة للتاريخ/الوقت المحدد Date أمثلة التقريب لأسفل إلى أول يوم من السنة
Query
SELECT toStartOfYear(toDateTime('2023-04-21 10:20:30'))
Response
┌─toStartOfYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                       2023-01-01 │
└──────────────────────────────────────────────────┘

toTimeWithFixedDate

أُضيفت في: v1.1.0 تستخرج مكوّن الوقت من تاريخ أو تاريخ ووقت. النتيجة المُعادة هي إزاحة إلى نقطة زمنية ثابتة، وهي حاليًا 1970-01-02، لكن النقطة الزمنية الدقيقة هي تفصيل تنفيذي قد يتغير مستقبلًا. لذلك، لا ينبغي استخدام toTime بشكل مستقل. الغرض الرئيسي من هذه الدالة هو حساب فرق الوقت بين تاريخين أو قيمتين من نوع تاريخ ووقت، مثل: toTime(dt1) - toTime(dt2). البنية
toTimeWithFixedDate(date[, timezone])
الوسائط
  • date — التاريخ المراد تحويله إلى وقت. Date أو DateTime أو DateTime64
  • timezone — اختياري. المنطقة الزمنية للقيمة المُعادة. String
القيمة المُعادة يعيد مكوّن الوقت من قيمة تاريخ أو تاريخ ووقت، على هيئة إزاحة بالنسبة إلى نقطة زمنية ثابتة (المحددة حاليًا بـ 1970-01-02). DateTime أمثلة احسب الفرق الزمني بين تاريخين
Query
SELECT toTimeWithFixedDate('2025-06-15 12:00:00'::DateTime) - toTimeWithFixedDate('2024-05-10 11:00:00'::DateTime) AS result, toTypeName(result)
Response
┌─result─┬─toTypeName(result)─┐
│   3600 │ Int32              │
└────────┴────────────────────┘

toTimezone

أُضيف في: v1.1.0 يحوّل DateTime أو DateTime64 إلى المنطقة الزمنية المحددة. لا تتغير القيمة الداخلية للبيانات (عدد ثواني Unix). يتغير فقط سِمة المنطقة الزمنية للقيمة وتمثيلها النصي. البنية
toTimezone(datetime, timezone)
الأسماء البديلة: toTimeZone المعاملات
  • date — القيمة المراد تحويلها. DateTime أو DateTime64
  • timezone — اسم المنطقة الزمنية المستهدفة. String
القيمة المُعادة تُرجع نفس الطابع الزمني المُدخل، ولكن مع المنطقة الزمنية المحددة DateTime أو DateTime64 أمثلة مثال على الاستخدام
Query
SELECT toDateTime('2019-01-01 00:00:00', 'UTC') AS time_utc,
toTypeName(time_utc) AS type_utc,
toInt32(time_utc) AS int32utc,
toTimezone(time_utc, 'Asia/Yekaterinburg') AS time_yekat,
toTypeName(time_yekat) AS type_yekat,
toInt32(time_yekat) AS int32yekat,
toTimezone(time_utc, 'US/Samoa') AS time_samoa,
toTypeName(time_samoa) AS type_samoa,
toInt32(time_samoa) AS int32samoa
FORMAT Vertical;
Response
Row 1:
──────
time_utc:   2019-01-01 00:00:00
type_utc:   DateTime('UTC')
int32utc:   1546300800
time_yekat: 2019-01-01 05:00:00
type_yekat: DateTime('Asia/Yekaterinburg')
int32yekat: 1546300800
time_samoa: 2018-12-31 13:00:00
type_samoa: DateTime('US/Samoa')
int32samoa: 1546300800

toUTCTimestamp

أُضيفت في: v23.8.0 تحوِّل قيمة تاريخ أو تاريخ ووقت من منطقة زمنية إلى طابع زمني بتوقيت UTC. تُضمَّن هذه الدالة أساسًا للتوافق مع Apache Spark وأطر العمل المشابهة. الصيغة
toUTCTimestamp(datetime, time_zone)
الأسماء البديلة: to_utc_timestamp المعاملات
  • datetime — قيمة ثابتة من نوع تاريخ أو تاريخ ووقت، أو تعبير. DateTime أو DateTime64
  • time_zone — قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية. String
القيمة المُعادة تعيد قيمة تاريخ أو تاريخ ووقت في المنطقة الزمنية UTC. DateTime أو DateTime64 أمثلة تحويل المنطقة الزمنية إلى UTC
Query
SELECT toUTCTimestamp(toDateTime('2023-03-16'), 'Asia/Shanghai')
Response
┌─toUTCTimestamp(toDateTime('2023-03-16'), 'Asia/Shanghai')─┐
│                                     2023-03-15 16:00:00 │
└─────────────────────────────────────────────────────────┘

toUnixTimestamp

قُدِّمت في: v1.1.0 يحوّل قيمة من النوع String أو Date أو DateTime إلى طابع زمني Unix (عدد الثواني منذ 1970-01-01 00:00:00 UTC) بصيغة UInt32. الصياغة
toUnixTimestamp(date[, timezone])
الوسيطات
  • date — القيمة المراد تحويلها. Date أو Date32 أو DateTime أو DateTime64 أو String
  • timezone — اختياري. المنطقة الزمنية المستخدمة للتحويل. إذا لم يتم تحديدها، تُستخدم المنطقة الزمنية للخادم. String
القيمة المعادة تُرجع الطابع الزمني لـ Unix. UInt32 أمثلة مثال على الاستخدام
Query
SELECT
'2017-11-05 08:07:47' AS dt_str,
toUnixTimestamp(dt_str) AS from_str,
toUnixTimestamp(dt_str, 'Asia/Tokyo') AS from_str_tokyo,
toUnixTimestamp(toDateTime(dt_str)) AS from_datetime,
toUnixTimestamp(toDateTime64(dt_str, 0)) AS from_datetime64,
toUnixTimestamp(toDate(dt_str)) AS from_date,
toUnixTimestamp(toDate32(dt_str)) AS from_date32
FORMAT Vertical;
Response
Row 1:
──────
dt_str:          2017-11-05 08:07:47
from_str:        1509869267
from_str_tokyo:  1509836867
from_datetime:   1509869267
from_datetime64: 1509869267
from_date:       1509840000
from_date32:     1509840000

toWeek

أُضيفت في: v20.1.0 تعيد هذه الدالة رقم الأسبوع لتاريخ أو قيمة تاريخ ووقت. يتيح لك الشكل ذو الوسيطتين للدالة toWeek() تحديد ما إذا كان الأسبوع يبدأ يوم الأحد أو يوم الاثنين، وما إذا كانت القيمة المُعادة يجب أن تكون ضمن النطاق من 0 إلى 53 أو من 1 إلى 53. تُعد toISOWeek() دالة توافقية مكافئة لـ toWeek(date,3). يوضح الجدول التالي كيفية عمل وسيطة mode.
Modeاليوم الأول من الأسبوعالنطاقالأسبوع 1 هو أول أسبوع …
0الأحد0-53يحتوي على يوم أحد في هذه السنة
1الاثنين0-53يحتوي على 4 أيام أو أكثر في هذه السنة
2الأحد1-53يحتوي على يوم أحد في هذه السنة
3الاثنين1-53يحتوي على 4 أيام أو أكثر في هذه السنة
4الأحد0-53يحتوي على 4 أيام أو أكثر في هذه السنة
5الاثنين0-53يحتوي على يوم اثنين في هذه السنة
6الأحد1-53يحتوي على 4 أيام أو أكثر في هذه السنة
7الاثنين1-53يحتوي على يوم اثنين في هذه السنة
8الأحد1-53يتضمن 1 يناير
9الاثنين1-53يتضمن 1 يناير
بالنسبة إلى قيم mode التي يكون معناها “يحتوي على 4 أيام أو أكثر في هذه السنة”، تُرقَّم الأسابيع وفقًا للمعيار ISO 8601:1988:
  • إذا كان الأسبوع الذي يتضمن 1 يناير يحتوي على 4 أيام أو أكثر في السنة الجديدة، فهو الأسبوع 1.
  • وإلا، فهو الأسبوع الأخير من السنة السابقة، ويكون الأسبوع التالي هو الأسبوع 1.
بالنسبة إلى قيم mode التي يكون معناها “يتضمن 1 يناير”، فإن الأسبوع الذي يتضمن 1 يناير هو الأسبوع 1. ولا يهم عدد الأيام من السنة الجديدة التي يتضمنها ذلك الأسبوع، حتى لو كان يتضمن يومًا واحدًا فقط. أي إذا كان الأسبوع الأخير من ديسمبر يتضمن 1 يناير من السنة التالية، فسيكون هو الأسبوع 1 من السنة التالية. يمكن أيضًا تحديد الوسيطة الأولى على أنها String بتنسيق تدعمه parseDateTime64BestEffort(). يوجد دعم لوسائط السلاسل النصية فقط لأسباب تتعلق بالتوافق مع MySQL، كما تتطلبه بعض أدوات الجهات الخارجية. ونظرًا إلى أن دعم وسائط السلاسل النصية قد يصبح في المستقبل معتمدًا على إعدادات جديدة للتوافق مع MySQL، ولأن تحليل السلاسل النصية بطيء عمومًا، يُوصى بعدم استخدامه. الصياغة
toWeek(datetime[, mode[, time_zone]])
الأسماء البديلة: week الوسيطات
  • datetime — ‏Date أو تاريخ مع وقت لاستخراج رقم الأسبوع منه. Date أو DateTime
  • mode — اختياري. يحدد النمط من 0 إلى 9 اليوم الأول من الأسبوع ونطاق رقم الأسبوع. القيمة الافتراضية هي 0. - time_zone — اختياري. المنطقة الزمنية. String
القيمة المُعادة يعيد رقم الأسبوع وفقًا للنمط المحدد. UInt32 أمثلة الحصول على أرقام الأسابيع باستخدام أنماط مختلفة
Query
SELECT toDate('2016-12-27') AS date, toWeek(date) AS week0, toWeek(date,1) AS week1, toWeek(date,9) AS week9
Response
┌───────date─┬─week0─┬─week1─┬─week9─┐
│ 2016-12-27 │    52 │    52 │     1 │
└────────────┴───────┴───────┴───────┘

toYYYYMM

أُضيفت في: v1.1.0 تحوّل تاريخًا أو تاريخًا ووقتًا إلى رقم UInt32 يحتوي على السنة ورقم الشهر (YYYY * 100 + MM). وتقبل وسيطة ثانية اختيارية للمنطقة الزمنية. وإذا قُدِّمت، فيجب أن تكون قيمة المنطقة الزمنية ثابتًا نصيًا. هذه الدالة هي عكس الدالة YYYYMMDDToDate(). الصيغة
toYYYYMM(datetime[, timezone])
الوسيطات
  • datetime — تاريخ أو تاريخ يتضمن وقتًا لتحويله. Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. المنطقة الزمنية للتحويل. إذا جرى توفيرها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا. String
القيمة المُعادة يعيد رقمًا من النوع UInt32 يحتوي على رقمَي السنة والشهر (YYYY * 100 + MM). UInt32 أمثلة تحويل التاريخ الحالي إلى تنسيق YYYYMM
Query
SELECT toYYYYMM(now(), 'US/Eastern')
Response
┌─toYYYYMM(now(), 'US/Eastern')─┐
│                        202303 │
└───────────────────────────────┘

toYYYYMMDD

أُضيف في: v1.1.0 يحوّل قيمة تاريخ أو تاريخ ووقت إلى عدد UInt32 يحتوي على السنة والشهر واليوم (YYYY * 10000 + MM * 100 + DD). ويقبل وسيطة ثانية اختيارية هي timezone. وإذا تم توفيرها، فيجب أن تكون timezone قيمة string constant. البنية
toYYYYMMDD(datetime[, timezone])
الوسيطات
  • datetime — تاريخ أو تاريخ ووقت للتحويل. Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. المنطقة الزمنية المستخدمة في التحويل. إذا تم تحديدها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا. String
القيمة المعادة يعيد قيمة من النوع UInt32 تحتوي على السنة والشهر واليوم (YYYY * 10000 + MM * 100 + DD). UInt32 أمثلة حوّل التاريخ الحالي إلى تنسيق YYYYMMDD
Query
SELECT toYYYYMMDD(now(), 'US/Eastern')
Response
┌─toYYYYMMDD(now(), 'US/Eastern')─┐
│                        20230302 │
└─────────────────────────────────┘

toYYYYMMDDhhmmss

أُضيفت في: v1.1.0 تحوِّل قيمة من نوع تاريخ أو تاريخ ووقت إلى رقم UInt64 يحتوي على السنة ورقم الشهر (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). تقبل وسيطًا اختياريًا ثانيًا للمنطقة الزمنية. وإذا تم توفيره، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا. البنية
toYYYYMMDDhhmmss(datetime[, timezone])
الوسيطات
  • datetimeDate أو تاريخ أو تاريخ مع وقت للتحويل. Date أو Date32 أو DateTime أو DateTime64
  • timezone — اختياري. المنطقة الزمنية للتحويل. إذا تم توفيرها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا. String
القيمة المُعادة يعيد عددًا من النوع UInt64 يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). UInt64 أمثلة حوّل التاريخ والوقت الحاليين إلى تنسيق YYYYMMDDhhmmss
Query
SELECT toYYYYMMDDhhmmss(now(), 'US/Eastern')
Response
┌─toYYYYMMDDhhmmss(now(), 'US/Eastern')─┐
│                        20230302112209 │
└───────────────────────────────────────┘

toYear

أُضيفت في: v1.1.0 تُرجع مكوّن السنة (ميلادي) من قيمة Date أو DateTime. البنية
toYear(datetime)
الأسماء البديلة: YEAR الوسيطات القيمة المُعادة تعيد سنة قيمة Date أو DateTime المُعطاة UInt16 أمثلة مثال على الاستخدام
Query
SELECT toYear(toDateTime('2023-04-21 10:20:30'))
Response
┌─toYear(toDateTime('2023-04-21 10:20:30'))─┐
│                                     2023  │
└───────────────────────────────────────────┘

toYearNumSinceEpoch

استُحدثت في: v25.3.0 تعيد عدد السنوات المنقضية منذ عام 1970 الصياغة
toYearNumSinceEpoch(date)
الوسائط القيمة المُعادة عدد صحيح موجب أمثلة مثال
Query
SELECT toYearNumSinceEpoch(toDate('2024-10-01'))
Response
54

toYearWeek

أُضيف في: v20.1.0 تعيد هذه الدالة السنة ورقم الأسبوع لتاريخٍ ما. وقد تختلف السنة في النتيجة عن السنة في وسيطة التاريخ في الأسبوع الأول والأسبوع الأخير من السنة. تعمل الوسيطة mode بالطريقة نفسها التي تعمل بها الوسيطة mode في toWeek(). تحذير: قد يختلف رقم الأسبوع الذي تُعيده toYearWeek() عن الرقم الذي تُعيده toWeek(). إذ تُعيد toWeek() دائمًا رقم الأسبوع ضمن سياق السنة المحددة، وإذا أعادت toWeek() القيمة 0، فإن toYearWeek() تُعيد القيمة المقابلة لآخر أسبوع من السنة السابقة. راجع prev_yearWeek في المثال أدناه. يمكن أيضًا تحديد الوسيطة الأولى على أنها String بتنسيق تدعمه parseDateTime64BestEffort(). ولا يوجد دعم لوسيطات السلاسل النصية إلا لأسباب تتعلق بالتوافق مع MySQL، كما تتطلبه بعض الأدوات الخارجية. ونظرًا إلى أن دعم وسائط السلاسل النصية قد يصبح في المستقبل معتمدًا على إعدادات جديدة للتوافق مع MySQL، ولأن تحليل السلاسل النصية بطيء عمومًا، يُوصى بعدم استخدامها. الصياغة
toYearWeek(datetime[, mode[, timezone]])
الأسماء المستعارة: yearweek الوسائط
  • datetime — التاريخ أو التاريخ مع الوقت المراد استخراج السنة ورقم الأسبوع منه. Date أو DateTime
  • mode — اختياري. يحدد النمط من 0 إلى 9 اليوم الأول من الأسبوع ونطاق رقم الأسبوع. القيمة الافتراضية 0. - timezone — اختياري. المنطقة الزمنية. String
القيمة المعادة تعيد السنة ورقم الأسبوع كقيمة عددية صحيحة مدمجة. UInt32 أمثلة الحصول على تركيبات السنة-الأسبوع باستخدام أنماط مختلفة
Query
SELECT toDate('2016-12-27') AS date, toYearWeek(date) AS yearWeek0, toYearWeek(date,1) AS yearWeek1, toYearWeek(date,9) AS yearWeek9, toYearWeek(toDate('2022-01-01')) AS prev_yearWeek
Response
┌───────date─┬─yearWeek0─┬─yearWeek1─┬─yearWeek9─┬─prev_yearWeek─┐
│ 2016-12-27 │    201652 │    201652 │    201701 │        202152 │
└────────────┴───────────┴───────────┴───────────┴───────────────┘

today

أُضيف في: v1.1.0 يعيد التاريخ الحالي وقت تحليل الاستعلام. وهو مطابق لـ toDate(now()). الصياغة
today()
الأسماء البديلة: curdate, current_date المعاملات
  • لا توجد.
القيمة المُعادة تعيد التاريخ الحالي Date أمثلة مثال على الاستخدام
Query
SELECT today() AS today, curdate() AS curdate, current_date() AS current_date FORMAT Pretty
Response
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃      today ┃    curdate ┃ current_date ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2025-03-03 │ 2025-03-03 │   2025-03-03 │
└────────────┴────────────┴──────────────┘
صياغة SQL القياسية بدون أقواس
Query
SELECT TODAY, CURDATE,CURRENT_DATE
Response
┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃      TODAY ┃    CURDATE ┃ CURRENT_DATE ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2025-03-04 │ 2025-03-04 │   2025-03-04 │
└────────────┴────────────┴──────────────┘

yesterday

أُضيفت في: v1.1.0 لا تقبل أي وسيطات وتُرجِع تاريخ الأمس في إحدى مراحل تحليل الاستعلام. البنية
yesterday()
المعاملات
  • لا شيء.
القيمة المُعادة يُرجع تاريخ الأمس. Date أمثلة الحصول على تاريخ الأمس
Query
SELECT yesterday();
SELECT today() - 1;
Response
┌─yesterday()─┐
│  2025-06-09 │
└─────────────┘
┌─minus(today(), 1)─┐
│        2025-06-09 │
└───────────────────┘
آخر تعديل في ٢٩ يونيو ٢٠٢٦