تقبل معظم الدوال في هذا القسم وسيطة اختيارية للمنطقة الزمنية، مثل 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 │
└─────────────────────┴────────────┴────────────┴─────────────────────┘UTCTimestamp
أُضيف في: v22.11.0
يعيد التاريخ والوقت الحاليَّين في لحظة تحليل الاستعلام. وهذه الدالة عبارة عن تعبير ثابت.
تعطي هذه الدالة النتيجة نفسها التي تعطيها now('UTC'). وقد أُضيفت فقط لدعم MySQL. ويُعد now الخيار المفضّل.
الصيغة
UTCTimestamp()الأسماء المستعارة: UTC_timestamp
الوسائط
- لا يوجد.
القيمة المُعادة
تعيد التاريخ والوقت الحاليين عند لحظة تحليل الاستعلام. DateTime
أمثلة
الحصول على الطابع الزمني الحالي بتوقيت UTC
SELECT UTCTimestamp()┌──────UTCTimestamp()─┐
│ 2024-05-28 08:32:09 │
└─────────────────────┘YYYYMMDDToDate
أُضيف في: v23.9.0
يحوّل رقمًا يتضمن السنة والشهر واليوم إلى Date.
هذه الدالة هي عكس الدالة toYYYYMMDD().
تكون النتيجة غير معرّفة إذا كان الإدخال لا يمثّل قيمة Date صالحة.
البنية
YYYYMMDDToDate(YYYYMMDD)الوسائط
القيمة المُعادة
يُرجع قيمة من نوع Date من الوسائط المقدَّمة Date
أمثلة
مثال
SELECT YYYYMMDDToDate(20230911);┌─YYYYMMDDToDate(20230911)─┐
│ 2023-09-11 │
└──────────────────────────┘YYYYMMDDToDate32
أُضيف في: v23.9.0
يحوِّل رقمًا يتضمن السنة والشهر واليوم إلى Date32.
هذه الدالة هي عكس الدالة toYYYYMMDD().
يكون الناتج غير معرّف إذا لم يُشفِّر الإدخال قيمة Date32 صالحة.
الصيغة
YYYYMMDDToDate32(YYYYMMDD)الوسائط
القيمة المُعادة
تُرجِع قيمة Date32 من الوسائط المُدخلة Date32
أمثلة
مثال
SELECT YYYYMMDDToDate32(20000507);┌─YYYYMMDDToDate32(20000507)─┐
│ 2000-05-07 │
└────────────────────────────┘YYYYMMDDhhmmssToDateTime
أُضيفت في: v23.9.0
تحوّل رقمًا يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية إلى DateTime.
هذه الدالة هي عكس الدالة toYYYYMMDDhhmmss().
يكون الناتج غير معرّف إذا كان الإدخال لا يمثّل قيمة DateTime صالحة.
البنية
YYYYMMDDhhmmssToDateTime(YYYYMMDDhhmmss[, timezone])الوسائط
YYYYMMDDhhmmss— رقم يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية.(U)Int*أوFloat*أوDecimaltimezone— اسم المنطقة الزمنية.String
القيمة المعادة
تُرجع قيمة DateTime من الوسائط المحددة DateTime
أمثلة
مثال
SELECT YYYYMMDDhhmmssToDateTime(20230911131415);┌─YYYYMMDDhhmmssToDateTime(20230911131415)─┐
│ 2023-09-11 13:14:15 │
└──────────────────────────────────────────┘YYYYMMDDhhmmssToDateTime64
أُضيفت في: v23.9.0
تحوّل رقمًا يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية إلى DateTime64.
هذه الدالة هي عكس الدالة toYYYYMMDDhhmmss().
يكون الناتج غير معرّف إذا كان الإدخال لا يرمّز قيمة DateTime64 صالحة.
الصيغة
YYYYMMDDhhmmssToDateTime64(YYYYMMDDhhmmss[, precision[, timezone]])المعاملات
YYYYMMDDhhmmss— رقم يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية.(U)Int*أوFloat*أوDecimalprecision— دقة الجزء الكسري (0-9).UInt8timezone— اسم المنطقة الزمنية.String
القيمة المُعادة
تعيد قيمة DateTime64 من المعاملات المحددة DateTime64
أمثلة
مثال
SELECT YYYYMMDDhhmmssToDateTime64(20230911131415, 3, 'Asia/Istanbul');┌─YYYYMMDDhhmmssToDateTime64(20230911131415, 3, 'Asia/Istanbul')─┐
│ 2023-09-11 13:14:15.000 │
└────────────────────────────────────────────────────────────────┘addDate
أُضيف في: v23.9.0
يضيف الفاصل الزمني إلى التاريخ المُقدَّم، أو التاريخ مع الوقت، أو التاريخ أو التاريخ مع الوقت المُمثَّل كسلسلة نصية. إذا أسفرت الإضافة عن قيمة تقع خارج حدود نوع البيانات، فستكون النتيجة غير معرّفة.
الصيغة
addDate(datetime, interval)المعاملات
datetime— التاريخ أو التاريخ مع الوقت الذي يُضاف إليهinterval.DateأوDate32أوDateTimeأوDateTime64أوStringinterval— الفترة الزمنية المراد إضافتها.Interval
القيمة المُعادة
تُعيد تاريخًا أو تاريخًا مع وقت ناتجًا عن إضافة interval إلى datetime. Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة فترة زمنية إلى تاريخ
SELECT addDate(toDate('2018-01-01'), INTERVAL 3 YEAR)┌─addDate(toDate('2018-01-01'), toIntervalYear(3))─┐
│ 2021-01-01 │
└──────────────────────────────────────────────────┘addDays
أُضيفت في: v1.1.0
تضيف عددًا محددًا من الأيام إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية.
البنية
addDays(datetime, num)الوسائط
datetime— تاريخ أو تاريخ مع وقت يُراد إضافة العدد المحدد من الأيام إليه.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الأيام المراد إضافتها.(U)Int*أوFloat*
القيمة المُعادة
يعيد datetime بعد إضافة num يومًا إليه. Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة أيام إلى أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 day)┌─plus(CAST('1998-06-16', 'Date'), toIntervalDay(10))─┐
│ 1998-06-26 │
└─────────────────────────────────────────────────────┘addHours
أُضيف في: v1.1.0
يضيف عددًا محددًا من الساعات إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّزَين كسلسلة نصية.
الصيغة
addHours(datetime, num)الوسائط
datetime— تاريخ أو تاريخ مع وقت يُضاف إليه عدد الساعات المحدد.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الساعات المراد إضافتها.(U)Int*أوFloat*
القيمة المُعادة
تعيد datetime بعد إضافة num ساعة إليه. DateTime أو DateTime64(3)
أمثلة
إضافة ساعات إلى أنواع تاريخ مختلفة
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┌─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
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 hour)┌─plus(CAST('1998-06-16', 'Date'), toIntervalHour(10))─┐
│ 1998-06-16 10:00:00 │
└──────────────────────────────────────────────────────┘addInterval
أُضيف في: v22.11.0
يضيف فترة زمنية إلى فترة زمنية أخرى أو إلى Tuple من الفترات الزمنية.
الصيغة
addInterval(interval_1, interval_2)الوسائط
interval_1— قيمة Interval الأولى أوTupleمن قيمInterval.IntervalأوTuple(Interval)interval_2— قيمة Interval الثانية المراد إضافتها.Interval
القيمة المُعادة
يُرجع Tuple من قيم Interval Tuple(Interval)
أمثلة
إضافة فواصل زمنية
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)┌─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أوStringnum— عدد الميكروثواني المطلوب إضافته.(U)Int*أوFloat*
القيمة المُعادة
تُرجِع date_time بعد إضافة num من الميكروثواني DateTime64
أمثلة
إضافة ميكروثوانٍ إلى أنواع مختلفة من التاريخ والوقت
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┌─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 البديلة
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 microsecond)┌─plus(CAST('1998-06-16', 'DateTime'), toIntervalMicrosecond(10))─┐
│ 1998-06-16 00:00:00.000010 │
└─────────────────────────────────────────────────────────────────┘addMilliseconds
أُضيفت في: v22.6.0
تضيف عددًا محددًا من المللي ثانية إلى قيمة تاريخ ووقت أو إلى تاريخ ووقت مُرمَّزَين كسلسلة نصية.
البنية
addMilliseconds(datetime, num)الوسائط
datetime— تاريخ ووقت يُضاف إليه العدد المحدد من المللي ثانية.DateTimeأوDateTime64أوStringnum— عدد المللي ثانية المطلوب إضافته.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد إضافة num مللي ثانية إليه DateTime64
أمثلة
إضافة مللي ثانية إلى أنواع مختلفة من التاريخ والوقت
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┌─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 البديلة
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 10 millisecond)┌─plus(CAST('1998-06-16', 'DateTime'), toIntervalMillisecond(10))─┐
│ 1998-06-16 00:00:00.010 │
└─────────────────────────────────────────────────────────────────┘addMinutes
أُضيف في: v1.1.0
يضيف عددًا محددًا من الدقائق إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية.
البنية
addMinutes(datetime, num)الوسيطات
datetime— تاريخ أو قيمة تاريخ/وقت يُضاف إليها العدد المحدد من الدقائق.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الدقائق المراد إضافتها.(U)Int*أوFloat*
القيمة المُعادة
تعيد datetime بعد إضافة num دقيقةً إليه. DateTime أو DateTime64(3)
أمثلة
إضافة دقائق إلى أنواع تاريخ مختلفة
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┌─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
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 minute)┌─plus(CAST('1998-06-16', 'Date'), toIntervalMinute(10))─┐
│ 1998-06-16 00:10:00 │
└────────────────────────────────────────────────────────┘addMonths
أُضيف في: v1.1.0
يضيف عددًا محددًا من الأشهر إلى تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية.
الصيغة
addMonths(datetime, num)الوسائط
datetime— تاريخ أو تاريخ مع وقت لإضافة عدد محدد من الأشهر إليه.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الأشهر المراد إضافتها.(U)Int*أوFloat*
القيمة المعادة
يعيد datetime بعد إضافة num من الأشهر إليه Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة أشهر إلى أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 month)┌─plus(CAST('1998-06-16', 'Date'), toIntervalMonth(10))─┐
│ 1999-04-16 │
└───────────────────────────────────────────────────────┘addNanoseconds
أُضيف في الإصدار: v22.6.0
يضيف عددًا محددًا من النانوثواني إلى تاريخ ووقت أو إلى تاريخ ووقت مُرمَّزَين كسلسلة نصية.
الصيغة
addNanoseconds(datetime, num)الوسيطات
datetime— قيمة تاريخ ووقت يُراد إضافة العدد المحدد من النانوثواني إليها.DateTimeأوDateTime64أوStringnum— عدد النانوثواني المراد إضافتها.(U)Int*أوFloat*
القيمة المُعادة
تُرجِع datetime بعد إضافة num من النانوثواني إليه من النوع DateTime64
أمثلة
إضافة نانوثوانٍ إلى أنواع مختلفة من التاريخ والوقت
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┌─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
SELECT dateAdd('1998-06-16'::DateTime, INTERVAL 1000 nanosecond)┌─plus(CAST('1998-06-16', 'DateTime'), toIntervalNanosecond(1000))─┐
│ 1998-06-16 00:00:00.000001000 │
└──────────────────────────────────────────────────────────────────┘addQuarters
أُضيف في: v20.1.0
يضيف عددًا محددًا من أرباع السنة إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية.
الصيغة
addQuarters(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ ووقت يُضاف إليه العدد المحدد من أرباع السنة.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد أرباع السنة المطلوب إضافتها.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد إضافة num من أرباع السنة إليه Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة أرباع السنة إلى أنواع مختلفة من التاريخ
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┌─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 البديلة
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 quarter)┌─plus(CAST('1998-06-16', 'Date'), toIntervalQuarter(10))─┐
│ 2000-12-16 │
└─────────────────────────────────────────────────────────┘addSeconds
قُدِّم في: v1.1.0
يضيف عددًا محددًا من الثواني إلى تاريخ، أو تاريخ ووقت، أو تاريخ مُمثَّل كسلسلة نصية، أو تاريخ ووقت مُمثَّل كسلسلة نصية.
الصيغة
addSeconds(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ مع وقت لإضافة العدد المحدد من الثواني إليه.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الثواني المراد إضافته.(U)Int*أوFloat*
القيمة المعادة
يعيد datetime بعد إضافة num ثانية إليه. DateTime أو DateTime64(3)
أمثلة
إضافة ثوانٍ إلى أنواع تاريخ متعددة
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┌─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
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 second)┌─plus(CAST('1998-06-16', 'Date'), toIntervalSecond(10))─┐
│ 1998-06-16 00:00:10 │
└────────────────────────────────────────────────────────┘addTupleOfIntervals
أُضيف في: v22.11.0
يضيف بالتتابع Tuple من قيم interval إلى تاريخ أو تاريخ مع وقت.
البنية
addTupleOfIntervals(datetime, intervals)الوسيطات
datetime— تاريخ أو تاريخ مع وقت لإضافة الفترات إليه.DateأوDate32أوDateTimeأوDateTime64intervals—Tupleمن الفترات لإضافتها إلىdatetime.Tuple(Interval)
القيمة المُعادة
يُرجع date بعد إضافة intervals Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة Tuple من الفترات إلى تاريخ
WITH toDate('2018-01-01') AS date
SELECT addTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 MONTH, INTERVAL 1 YEAR))┌─addTupleOfIntervals(date, (toIntervalDay(1), toIntervalMonth(1), toIntervalYear(1)))─┐
│ 2019-02-02 │
└──────────────────────────────────────────────────────────────────────────────────────┘addWeeks
أُضيفت في: v1.1.0
يضيف عددًا محددًا من الأسابيع إلى تاريخ، أو تاريخ مع وقت، أو تاريخ أو تاريخ مع وقت مُشفَّر كسلسلة نصية.
الصيغة
addWeeks(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ يتضمن وقتًا لإضافة العدد المحدد من الأسابيع إليه.DateorDate32orDateTimeorDateTime64orStringnum— عدد الأسابيع المراد إضافتها.(U)Int*orFloat*
القيمة المعادة
تعيد datetime بعد إضافة num من الأسابيع إليه Date or Date32 or DateTime or DateTime64
أمثلة
إضافة أسابيع إلى أنواع مختلفة من التواريخ
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┌─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
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 week)┌─plus(CAST('1998-06-16', 'Date'), toIntervalWeek(10))─┐
│ 1998-08-25 │
└──────────────────────────────────────────────────────┘addYears
أُضيفت في: v1.1.0
تضيف عددًا محددًا من السنوات إلى تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت ممثَّلَين كسلسلة نصية.
البنية
addYears(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ مع وقت لإضافة العدد المحدد من السنوات إليه.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد السنوات المراد إضافتها.(U)Int*أوFloat*
القيمة المُعادة
تُعيد datetime بعد إضافة num سنة إليه. Date أو Date32 أو DateTime أو DateTime64
أمثلة
إضافة سنوات إلى أنواع تاريخ مختلفة
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┌─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
SELECT dateAdd('1998-06-16'::Date, INTERVAL 10 year)┌─plus(CAST('1998-06-16', 'Date'), toIntervalYear(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 | القيم الممكنة |
|---|---|
| nanosecond | nanosecond, nanoseconds, ns |
| microsecond | microsecond, microseconds, us, u |
| millisecond | millisecond, milliseconds, ms |
| second | second, seconds, ss, s |
| minute | minute, minutes, mi, n |
| hour | hour, hours, hh, h |
| day | day, days, dd, d |
| week | week, weeks, wk, ww |
| month | month, months, mm, m |
| quarter | quarter, quarters, qq, q |
| year | year, years, yyyy, yy |
startdate— أول قيمة زمنية للطرح (المطروح).DateأوDate32أوDateTimeأوDateTime64enddate— ثاني قيمة زمنية يُطرح منها (المطروح منه).DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. اسم المنطقة الزمنية. إذا تم تحديده، فسيُطبَّق على كلٍّ من startdate و enddate. وإذا لم يتم تحديده، فستُستخدم المنطقتان الزمنيتان لـ startdate و enddate. وإذا لم تكونا متماثلتين، فالنتيجة غير محددة.String
القيمة المعادة
تعيد الفرق بين enddate و startdate معبَّرًا عنه بوحدة unit. Int32
أمثلة
حساب العمر بالساعات
SELECT age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))┌─age('hour', toDateTime('2018-01-01 22:30:00'), toDateTime('2018-01-02 23:00:00'))─┐
│ 24 │
└───────────────────────────────────────────────────────────────────────────────────┘حساب العمر بوحدات مختلفة
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┌──────────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أوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المُعادة
تُرجع قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن اليوم. Date أو Date32 أو DateTime أو DateTime64
أمثلة
مثال على الاستخدام
SELECT changeDay('2024-01-31'::DateTime, 15)2024-01-15 00:00:00changeHour
أُضيفت في: v24.7.0
تُغيّر مكوّن الساعة في قيمة من نوع تاريخ أو تاريخ ووقت.
البنية
changeHour(date_or_datetime, value)الوسيطات
date_or_datetime— القيمة المراد تغييرها.DateأوDate32أوDateTimeأوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المعادة
ترجع قيمة من نفس نوع date_or_datetime مع تعديل مكوّن الساعة. DateTime أو DateTime64
أمثلة
مثال على الاستخدام
SELECT changeHour('2024-01-01 12:00:00'::DateTime, 5)2024-01-01 05:00:00changeMinute
أُضيف في: v24.7.0
يُغيّر مكوّن الدقائق في date or date time.
البنية
changeMinute(date_or_datetime, value)المعاملات
date_or_datetime— القيمة المراد تغييرها.DateأوDate32أوDateTimeأوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المُعادة
يعيد قيمة من النوع نفسه لـ date_or_datetime بعد تعديل مكوّن الدقيقة. DateTime أو DateTime64
أمثلة
مثال للاستخدام
SELECT changeMinute('2024-01-01 12:30:00'::DateTime, 45)2024-01-01 12:45:00changeMonth
استُحدث في: v24.7.0
يُغيّر مكوّن الشهر في قيمة من نوع تاريخ أو تاريخ ووقت.
البنية
changeMonth(date_or_datetime, value)الوسيطات
date_or_datetime— القيمة المراد تغييرها.DateأوDate32أوDateTimeأوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المُعادة
تُرجِع قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن الشهر. Date أو Date32 أو DateTime أو DateTime64
أمثلة
مثال على الاستخدام
SELECT changeMonth('2024-01-01'::DateTime, 12)2024-12-01 00:00:00changeSecond
أُضيف في: v24.7.0
يُغيّر مكوّن الثواني في قيمة من نوع date أو date time.
البنية
changeSecond(date_or_datetime, value)الوسيطات
date_or_datetime— القيمة المراد تغييرها.DateأوDate32أوDateTimeأوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المُعادة
تُعيد قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن الثواني. DateTime أو DateTime64
أمثلة
مثال على الاستخدام
SELECT changeSecond('2024-01-01 12:30:45'::DateTime, 15)2024-01-01 12:30:15changeYear
قُدِّمت في: v24.7.0
تُغيِّر مكوّن السنة في قيمة من نوع Date أو DateTime.
الصياغة
changeYear(date_or_datetime, value)الوسيطات
date_or_datetime— القيمة المراد تغييرها.DateأوDate32أوDateTimeأوDateTime64value— القيمة الجديدة.(U)Int*
القيمة المُعادة
تُعيد قيمة من النوع نفسه لـ date_or_datetime مع تعديل مكوّن السنة. Date أو Date32 أو DateTime أو DateTime64
أمثلة
مثال على الاستخدام
SELECT changeYear('2024-01-01'::DateTime, 2023)2023-01-01 00:00:00dateDiff
تم تقديمه في: 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أوDateTime64enddate— القيمة الزمنية الثانية التي يُطرح منها (المطروح منه).DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. اسم المنطقة الزمنية. إذا تم تحديده، فسيُطبَّق على كلٍّ منstartdateوenddate. وإذا لم يتم تحديده، فستُستخدم المنطقتان الزمنيتان لـstartdateوenddate. وإذا لم تكونا متماثلتين، فستكون النتيجة غير محددة.String
القيمة المعادة
تعيد الفرق بين enddate وstartdate معبَّرًا عنه بوحدة unit. Int64
أمثلة
حساب فرق التاريخ بالساعات
SELECT dateDiff('hour', toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) AS res┌─res─┐
│ 25 │
└─────┘احسب الفرق بين التواريخ بوحدات مختلفة
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┌──────────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— جزء التاريخ الذي تريد استخراجه.Stringdatetime— قيمة تاريخ أو تاريخ ووقت.DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
تُرجع الجزء المحدد من التاريخ. String
أمثلة
استخراج أجزاء مختلفة من التاريخ
WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT
dateName('year', date_value),
dateName('month', date_value),
dateName('day', date_value)┌─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.Stringdatetime— التاريخ والوقت.DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. اسم المنطقة الزمنية لقيمة التاريخ والوقت المعادة. إذا لم يتم تحديده، تستخدم الدالة المنطقة الزمنية الخاصة بالوسيطةdatetime.String
القيمة المعادة
تعيد قيمة التاريخ والوقت بعد اقتطاعها.
وسيطة unit |
وسيطة datetime |
نوع الإرجاع |
|---|---|---|
| Year, Quarter, Month, Week | Date32 أو DateTime64 أو Date أو DateTime |
Date32 أو Date |
| Day, Hour, Minute, Second | Date32، DateTime64، Date، أو DateTime |
DateTime64 أو DateTime |
| Millisecond, Microsecond, | أي قيمة | DateTime64 |
| Nanosecond | بمقياس 3 أو 6 أو 9 |
أمثلة
الاقتطاع من دون منطقة زمنية
SELECT now(), dateTrunc('hour', now());┌───────────────now()─┬─dateTrunc('hour', now())──┐
│ 2020-09-28 10:40:45 │ 2020-09-28 10:00:00 │
└─────────────────────┴───────────────────────────┘الاقتطاع مع تحديد المنطقة الزمنية
SELECT now(), dateTrunc('hour', now(), 'Asia/Istanbul');┌───────────────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/%y | 01/02/18 |
| %e | يوم الشهر مع مسافات بادئة (1-31) | 2 |
| %f | الجزء الكسري من الثانية | 123456 |
| %F | تاريخ قصير بصيغة YYYY-MM-DD، ويكافئ %Y-%m-%d | 2018-01-02 |
| %g | تنسيق سنة من رقمين، متوافق مع ISO 8601 | 18 |
| %G | تنسيق سنة من أربعة أرقام لرقم الأسبوع وفق ISO | 2018 |
| %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 أو PM | PM |
| %Q | الربع (1-4) | 1 |
| %r | وقت 12 ساعة بصيغة HH:MM AM/PM، ويكافئ %h:%i %p | 10:30 PM |
| %R | وقت 24 ساعة بصيغة HH:MM، ويكافئ %H:%i | 22:33 |
| %s | الثانية (00-59) | 44 |
| %S | الثانية (00-59) | 44 |
| %t | محرف tab أفقي | |
| %T | تنسيق الوقت ISO 8601 (HH:MM:SS)، ويكافئ %H:%i:%S | 22: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أوDateTime64format— سلسلة تنسيق تحتوي على حقول استبدال.Stringtimezone— اختياري. اسم المنطقة الزمنية للوقت المنسَّق.String
القيمة المُعادة
يعيد قيم التاريخ والوقت وفقًا للتنسيق المحدد. String
أمثلة
تنسيق التاريخ باستخدام العنصر النائب للسنة
SELECT formatDateTime(toDate('2010-01-04'), '%g')┌─formatDateTime(toDate('2010-01-04'), '%g')─┐
│ 10 │
└────────────────────────────────────────────┘تنسيق DateTime64 بأجزاء من الثانية
SELECT formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')┌─formatDateTime(toDateTime64('2010-01-04 12:34:56.123456', 7), '%f')─┐
│ 123456 │
└─────────────────────────────────────────────────────────────────────┘التنسيق باستخدام المنطقة الزمنية
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┌──────────────────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أوDateTime64format— سلسلة تنسيق تتضمن حقول استبدال بنمط Joda.Stringtimezone— اختياري. اسم المنطقة الزمنية للوقت المنسَّق.String
القيمة المُعادة
يعرض قيم الوقت والتاريخ وفقًا للتنسيق المحدد. String
أمثلة
تنسيق التاريخ والوقت باستخدام بنية Joda
SELECT formatDateTimeInJodaSyntax(toDateTime('2010-01-04 12:34:56'), 'yyyy-MM-dd HH:mm:ss')┌─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
أمثلة
تحويل الأيام منذ العام صفر إلى تواريخ
SELECT
fromDaysSinceYearZero(739136) AS date1,
fromDaysSinceYearZero(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2┌──────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
أمثلة
تحويل الأيام منذ السنة صفر إلى تواريخ
SELECT
fromDaysSinceYearZero32(739136) AS date1,
fromDaysSinceYearZero32(toDaysSinceYearZero(toDate('2023-09-08'))) AS date2┌──────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
أمثلة
تحويل اليوم اليولياني المُعدَّل إلى تاريخ
SELECT fromModifiedJulianDay(58849)┌─fromModifiedJulianDay(58849)─┐
│ 2020-01-01 │
└──────────────────────────────┘fromModifiedJulianDayOrNull
أُضيف في: v21.1.0
يشبه fromModifiedJulianDay()، لكنه يعيد NULL بدلًا من إطلاق استثناءات.
الصيغة
fromModifiedJulianDayOrNull(day)الوسائط
day— رقم اليوم اليولياني المعدّل.(U)Int*
القيمة المُعادة
يعيد التاريخ بصيغة نصية إذا كانت قيمة الوسيط day صالحة، وإلا فستكون null. Nullable(String)
أمثلة
تحويل اليوم اليولياني المعدّل إلى تاريخ مع التعامل مع القيم null
SELECT fromModifiedJulianDayOrNull(58849);
SELECT fromModifiedJulianDayOrNull(60000000); -- invalid argument, returns NULL┌─fromModifiedJulianDayOrNull(58849)─┐
│ 2020-01-01 │
└────────────────────────────────────┘
┌─fromModifiedJulianDayOrNull(60000000)─┐
│ ᴺᵁᴸᴸ │
└───────────────────────────────────────┘fromUTCTimestamp
أُضيف في: v22.1.0
يحوّل قيمة تاريخ أو تاريخ مع وقت من المنطقة الزمنية UTC إلى قيمة تاريخ أو تاريخ مع وقت بالمنطقة الزمنية المحددة. تُضمَّن هذه الدالة أساسًا للتوافق مع Apache Spark وأطر العمل المماثلة.
الصيغة
fromUTCTimestamp(datetime, time_zone)الأسماء المستعارة: from_utc_timestamp
الوسيطات
datetime— قيمة ثابتة من نوع تاريخ أو تاريخ مع وقت، أو تعبير.DateTimeأوDateTime64time_zone— قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية.String
القيمة المعادة
يعيد قيمة من نوع DateTime/DateTime64 في المنطقة الزمنية المحددة. DateTime أو DateTime64
أمثلة
تحويل المنطقة الزمنية UTC إلى المنطقة الزمنية المحددة
SELECT fromUTCTimestamp(toDateTime64('2023-03-16 10:00:00', 3), 'Asia/Shanghai')┌─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أوDateTime64format— اختياري. سلسلة تنسيق ثابتة لتنسيق الإخراج.Stringtimezone— اختياري. سلسلة ثابتة للمنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime للطابع الزمني عند استدعائه بوسيطة واحدة، أو قيمة String عند استدعائه بوسيطتين أو ثلاث وسيطات. DateTime أو String
أمثلة
تحويل طابع زمني لـ Unix إلى DateTime
SELECT fromUnixTimestamp(423543535)┌─fromUnixTimestamp(423543535)─┐
│ 1983-06-04 02:58:55 │
└──────────────────────────────┘تحويل طابع زمني لـ Unix باستخدام تنسيق
SELECT fromUnixTimestamp(1234334543, '%Y-%m-%d %R:%S') AS DateTime┌─DateTime────────────┐
│ 2009-02-11 06: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أوDateTime64format— اختياري. سلسلة تنسيق ثابتة تستخدم بناء جملة Joda لتنسيق الإخراج.Stringtimezone— اختياري. سلسلة ثابتة للمنطقة الزمنية.String
القيمة المعادة
يعيد قيمة تاريخ مع وقت عند استدعائه بوسيطة واحدة، أو قيمة من النوع String عند استدعائه بوسيطتين أو ثلاث وسيطات.} DateTime أو String
أمثلة
تحويل طابع زمني بنظام Unix باستخدام تنسيق Joda
SELECT fromUnixTimestampInJodaSyntax(1234334543, 'yyyy-MM-dd HH:mm:ss', 'UTC') AS DateTime┌─DateTime────────────┐
│ 2009-02-11 06:42:23 │
└─────────────────────┘localtime
أُضيف في: v26.7.0
يعيد الوقت الحالي من اليوم وفق المنطقة الزمنية الخاصة بالخادم (أو الجلسة) في لحظة تحليل الاستعلام.
الدالة تعبير ثابت. وهي LOCALTIME القياسية في SQL / PostgreSQL، وتكافئ CAST(now() AS Time).
البنية
localtime()الوسائط
- لا يوجد.
القيمة المُعادة
يعيد الوقت الحالي. Time
أمثلة
صيغة SQL القياسية من دون أقواس
SELECT LOCALTIME┌───────LOCALTIME─┐
│ 07:42:09 │
└─────────────────┘makeDate
أُضيفت في: v22.6.0
تنشئ قيمة Date من أحد الخيارين التاليين:
- سنة وشهر ويوم
- سنة ورقم اليوم في السنة
الصيغة
makeDate(year, month, day)
makeDate(year, day_of_year)الوسيطات
year— رقم السنة.(U)Int*أوFloat*أوDecimalmonth— رقم الشهر (1-12).(U)Int*أوFloat*أوDecimalday— رقم اليوم في الشهر (1-31).(U)Int*أوFloat*أوDecimalday_of_year— رقم اليوم في السنة (1-365).(U)Int*أوFloat*أوDecimal
القيمة المعادة
تعيد قيمة Date مُنشأة من الوسيطات المقدَّمة Date
أمثلة
إنشاء Date من سنة وشهر ويوم
SELECT makeDate(2023, 2, 28) AS date;┌───────date─┐
│ 2023-02-28 │
└────────────┘Date من السنة ويوم السنة
SELECT makeDate(2023, 42) AS date;┌───────date─┐
│ 2023-02-11 │
└────────────┘makeDate32
أُضيفت في: v22.6.0
تُنشئ Date32 من أحد الخيارين التاليين:
- سنة وشهر ويوم
- سنة ويوم من أيام السنة
الصياغة
makeDate32(year, month, day)
makeDate32(year, day_of_year)الوسائط
year— رقم السنة.(U)Int*أوFloat*أوDecimalmonth— رقم الشهر (1-12).(U)Int*أوFloat*أوDecimalday— رقم اليوم في الشهر (1-31).(U)Int*أوFloat*أوDecimalday_of_year— رقم اليوم في السنة (1-365).(U)Int*أوFloat*أوDecimal
القيمة المعادة
يعيد قيمة Date32 مُنشأة من الوسائط المقدَّمة Date32
أمثلة
Date32 من سنة وشهر ويوم
SELECT makeDate(2023, 2, 28) AS date;┌───────date─┐
│ 2023-02-28 │
└────────────┘Date32 من السنة ورقم اليوم في السنة
SELECT makeDate(2023, 42) AS date;┌───────date─┐
│ 2023-02-11 │
└────────────┘makeDateTime
أُضيفت في: v22.6.0
تنشئ قيمة DateTime من السنة والشهر واليوم والساعة والدقيقة والثانية، مع timezone اختياري.
الصيغة
makeDateTime(year, month, day, hour, minute, second[, timezone])الوسيطات
year— رقم السنة.(U)Int*أوFloat*أوDecimalmonth— رقم الشهر (1-12).(U)Int*أوFloat*أوDecimalday— يوم من الشهر (1-31).(U)Int*أوFloat*أوDecimalhour— الساعة (0-23).(U)Int*أوFloat*أوDecimalminute— الدقيقة (0-59).(U)Int*أوFloat*أوDecimalsecond— الثانية (0-59).(U)Int*أوFloat*أوDecimaltimezone— اسم المنطقة الزمنية.String
القيمة المعادة
تعيد قيمة DateTime مُنشأة من الوسيطات المقدَّمة DateTime
أمثلة
DateTime من السنة والشهر واليوم والساعة والدقيقة والثانية
SELECT makeDateTime(2023, 2, 28, 17, 12, 33) AS DateTime;┌────────────DateTime─┐
│ 2023-02-28 17:12:33 │
└─────────────────────┘makeDateTime64
أُضيفت في: v22.6.0
تنشئ قيمة DateTime64 من السنة والشهر واليوم والساعة والدقيقة والثانية، مع جزء كسري اختياري، ودقة، ومنطقة زمنية.
البنية
makeDateTime64(year, month, day, hour, minute, second[, fraction[, precision[, timezone]]])الوسائط
year— رقم السنة.(U)Int*أوFloat*أوDecimalmonth— رقم الشهر (1-12).(U)Int*أوFloat*أوDecimalday— يوم الشهر (1-31).(U)Int*أوFloat*أوDecimalhour— الساعة (0-23).(U)Int*أوFloat*أوDecimalminute— الدقيقة (0-59).(U)Int*أوFloat*أوDecimalsecond— الثانية (0-59).(U)Int*أوFloat*أوDecimalfraction— الجزء الكسري من الثانية.(U)Int*أوFloat*أوDecimalprecision— دقة الجزء الكسري (0-9).UInt8timezone— اسم المنطقة الزمنية.String
القيمة المُعادة
تُرجِع قيمة DateTime64 مُنشأة من الوسائط المُعطاة DateTime64
أمثلة
DateTime64 من السنة والشهر واليوم والساعة والدقيقة والثانية
SELECT makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5);┌─makeDateTime64(2023, 5, 15, 10, 30, 45, 779, 5)─┐
│ 2023-05-15 10:30:45.00779 │
└─────────────────────────────────────────────────┘monthName
أُضيف في: v22.1.0
تُرجع اسم الشهر كسلسلة نصية من قيمة من نوع تاريخ أو تاريخ مع وقت.
البنية
monthName(datetime)الوسيطات
datetime— تاريخ أو تاريخ يتضمن وقتًا.DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
يعيد اسم الشهر. String
أمثلة
الحصول على اسم الشهر من التاريخ
WITH toDateTime('2021-04-14 11:22:33') AS date_value
SELECT monthName(date_value)┌─monthName(date_value)─┐
│ April │
└───────────────────────┘now
ظهرت في: v1.1.0
تعيد التاريخ والوقت الحاليين عند لحظة تحليل الاستعلام. الدالة تعبير ثابت.
البنية
now([timezone])الأسماء البديلة: localtimestamp, current_timestamp
الوسائط
timezone— اختياري. اسم المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
يعيد التاريخ والوقت الحاليَّين. DateTime
أمثلة
استعلام بدون منطقة زمنية
SELECT now()┌───────────────now()─┐
│ 2020-10-17 07:42:09 │
└─────────────────────┘استعلام مع تحديد المنطقة الزمنية
SELECT now('Asia/Istanbul')┌─now('Asia/Istanbul')─┐
│ 2020-10-17 10:42:23 │
└──────────────────────┘صياغة SQL القياسية دون أقواس
SELECT NOW, CURRENT_TIMESTAMP┌─────────────────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 (نانوثانية).UInt8timezone— اختياري. اسم المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
تعيد التاريخ والوقت الحاليين بدقة أجزاء من الثانية. DateTime64
أمثلة
استعلام بدقة افتراضية ومخصّصة
SELECT now64(), now64(9, 'Asia/Istanbul')┌─────────────────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()
SELECT
now(),
nowInBlock(),
sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock┌───────────────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 (نانوثانية).UInt8timezone— اختياري. اسم المنطقة الزمنية للقيمة المعادة.String
القيمة المعادة
تعيد التاريخ والوقت الحاليين عند معالجة كل كتلة من البيانات، مع دقة أقل من الثانية. DateTime64
أمثلة
الفرق مع الدالة now64()
SELECT
now64(),
nowInBlock64(),
sleep(1)
FROM numbers(3)
SETTINGS max_block_size = 1
FORMAT PrettyCompactMonoBlock┌─────────────────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
أمثلة
مثال على الاستخدام
SELECT serverTimeZone()┌─serverTimeZone()─┐
│ Etc/UTC │
└──────────────────┘subDate
أُضيف في: v23.9.0
يطرح الفاصل الزمني من التاريخ أو التاريخ والوقت المُقدَّمين، أو من تاريخ أو تاريخ ووقت مُرمَّزين كسلسلة. إذا نتج عن الطرح قيمة تقع خارج حدود نوع البيانات، فالنتيجة غير معرّفة.
البنية
subDate(datetime, interval)الوسيطات
datetime— التاريخ أو التاريخ والوقت الذي يُطرَح منهinterval.DateأوDate32أوDateTimeأوDateTime64interval— الفاصل الزمني المراد طرحه.Interval
القيمة المُعادة
يعيد تاريخًا أو تاريخًا ووقتًا ناتجًا عن طرح interval من datetime. Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح فاصل زمني من تاريخ
SELECT subDate(toDate('2018-01-01'), INTERVAL 3 YEAR)┌─subDate(toDate('2018-01-01'), toIntervalYear(3))─┐
│ 2015-01-01 │
└──────────────────────────────────────────────────┘subtractDays
أُضيفت في: v1.1.0
يطرح عددًا محددًا من الأيام من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية.
البنية
subtractDays(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ يتضمن وقتًا، يُطرح منه العدد المحدد من الأيام.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الأيام المطلوب طرحها.(U)Int*أوFloat*
القيمة المعادة
يعيد datetime بعد طرح num يومًا منه. Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح الأيام من أنواع التاريخ المختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 day)┌─minus(CAST('1998-06-16', 'Date'), toIntervalDay(10))─┐
│ 1998-06-06 │
└──────────────────────────────────────────────────────┘subtractHours
قُدِّمت في: v1.1.0
تطرح عددًا محددًا من الساعات من تاريخ، أو تاريخ ووقت، أو تاريخ مُمثَّل كسلسلة نصية، أو تاريخ ووقت مُمثَّل كسلسلة نصية.
البنية
subtractHours(datetime, num)الوسيطات
datetime—Dateأو تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من الساعات.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الساعات المراد طرحه.(U)Int*أوFloat*
القيمة المعادة
يُرجع datetime بعد طرح num ساعة منه DateTime أو DateTime64(3)
أمثلة
طرح الساعات من أنواع تاريخ مختلفة
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┌─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
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 hour)┌─minus(CAST('1998-06-16', 'Date'), toIntervalHour(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)
أمثلة
طرح الفواصل الزمنية
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);┌─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أوStringnum— عدد الميكروثواني المراد طرحه.(U)Int*أوFloat*
القيمة المُعادة
تعيد datetime بعد طرح num ميكروثانية منه DateTime64
أمثلة
طرح الميكروثواني من أنواع مختلفة من قيم التاريخ والوقت
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┌─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
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 microsecond)┌─minus(CAST('1998-06-16', 'DateTime'), toIntervalMicrosecond(10))─┐
│ 1998-06-15 23:59:59.999990 │
└──────────────────────────────────────────────────────────────────┘subtractMilliseconds
أُضيفت في: v22.6.0
تطرح عددًا محددًا من المللي ثانية من قيمة تاريخ ووقت أو من قيمة تاريخ ووقت مُرمَّزة كسلسلة نصية.
الصياغة
subtractMilliseconds(datetime, num)الوسيطات
datetime— قيمة تاريخ ووقت يُطرح منها العدد المحدد من المللي ثانية.DateTimeأوDateTime64أوStringnum— عدد المللي ثوانٍ المراد طرحه.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد طرح num مللي ثانية منه DateTime64
أمثلة
طرح المللي ثانية من أنواع مختلفة من التاريخ والوقت
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┌─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
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 millisecond)┌─minus(CAST('1998-06-16', 'DateTime'), toIntervalMillisecond(10))─┐
│ 1998-06-15 23:59:59.990 │
└──────────────────────────────────────────────────────────────────┘subtractMinutes
أُضيف في: v1.1.0
يطرح عددًا محددًا من الدقائق من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّز كسلسلة.
الصيغة
subtractMinutes(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ ووقت يُطرح منهما العدد المحدد من الدقائق.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الدقائق المطلوب طرحه.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد طرح num دقيقة منه من النوع DateTime أو DateTime64(3)
أمثلة
طرح الدقائق من أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 minute)┌─minus(CAST('1998-06-16', 'Date'), toIntervalMinute(10))─┐
│ 1998-06-15 23:50:00 │
└─────────────────────────────────────────────────────────┘subtractMonths
أُضيف في: v1.1.0
يطرح عددًا محددًا من الأشهر من تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية.
الصيغة
subtractMonths(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ مع وقت يُطرح منه عدد الأشهر المحدد.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الأشهر المراد طرحه.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد طرح num شهرًا منه Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح الأشهر من أنواع تاريخ مختلفة
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┌─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
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 month)┌─minus(CAST('1998-06-16', 'Date'), toIntervalMonth(10))─┐
│ 1997-08-16 │
└────────────────────────────────────────────────────────┘subtractNanoseconds
أُضيف في: v20.1.0
يطرح عددًا محددًا من النانوثواني من قيمة تاريخ ووقت أو من تاريخ ووقت مُرمَّز كسلسلة نصية.
البنية
subtractNanoseconds(datetime, num)الوسيطات
datetime— تاريخ ووقت يُطرح منه عدد محدد من النانوثواني.DateTimeأوDateTime64أوStringnum— عدد النانوثواني المطلوب طرحه.(U)Int*أوFloat*
القيمة المعادة
تعيد القيمة datetime بعد طرح num نانوثانية منها، من النوع DateTime64
أمثلة
طرح النانوثواني من أنواع التاريخ والوقت المختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::DateTime, INTERVAL 10 nanosecond)┌─minus(CAST('1998-06-16', 'DateTime'), toIntervalNanosecond(10))─┐
│ 1998-06-15 23:59:59.999999990 │
└─────────────────────────────────────────────────────────────────┘subtractQuarters
أُضيف في: v20.1.0
يطرح عددًا محددًا من أرباع السنة من تاريخ، أو تاريخ ووقت، أو تاريخ مُرمَّز كسلسلة نصية، أو تاريخ ووقت مُرمَّز كسلسلة نصية.
الصيغة
subtractQuarters(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من أرباع السنة.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد أرباع السنة المراد طرحه.(U)Int*أوFloat*
القيمة المعادة
يعيد datetime بعد طرح num من أرباع السنة. Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح أرباع السنة من أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 quarter)┌─minus(CAST('1998-06-16', 'Date'), toIntervalQuarter(10))─┐
│ 1995-12-16 │
└──────────────────────────────────────────────────────────┘subtractSeconds
أُضيف في: v1.1.0
يطرح عددًا محددًا من الثواني من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّزَين كسلسلة نصية.
الصيغة
subtractSeconds(datetime, num)الوسائط
datetime— تاريخ أو تاريخ مع وقت يُطرح منه العدد المحدد من الثواني.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الثواني المطلوب طرحها.(U)Int*أوFloat*
القيمة المُعادة
يعيد datetime بعد طرح num ثانية منه DateTime أو DateTime64(3)
أمثلة
طرح الثواني من أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 second)┌─minus(CAST('1998-06-16', 'Date'), toIntervalSecond(10))─┐
│ 1998-06-15 23:59:50 │
└─────────────────────────────────────────────────────────┘subtractTupleOfIntervals
قُدِّم في: v22.11.0
يطرح بالتتابع مجموعة مرتبة من الفواصل الزمنية من تاريخ أو من تاريخ ووقت.
البنية
subtractTupleOfIntervals(datetime, intervals)الوسيطات
datetime— تاريخ أو تاريخ ووقت تُطرح منه الفواصل الزمنية.DateأوDate32أوDateTimeأوDateTime64intervals— Tuple من الفواصل الزمنية تُطرح منdatetime.Tuple(Interval)
القيمة المُعادة
يُرجع date بعد طرح intervals منه Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح Tuple من الفواصل الزمنية من التاريخ
WITH toDate('2018-01-01') AS date SELECT subtractTupleOfIntervals(date, (INTERVAL 1 DAY, INTERVAL 1 YEAR))┌─subtractTupleOfIntervals(date, (toIntervalDay(1), toIntervalYear(1)))─┐
│ 2016-12-31 │
└───────────────────────────────────────────────────────────────────────┘subtractWeeks
أُضيفت في: v1.1.0
تطرح عددًا محددًا من الأسابيع من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُرمَّز كسلسلة نصية.
البنية
subtractWeeks(datetime, num)الوسيطات
datetime—Dateأو تاريخ مع وقت يُطرح منه العدد المحدد من الأسابيع.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد الأسابيع المطلوب طرحه.(U)Int*أوFloat*
القيمة المعادة
تعيد datetime بعد طرح num أسبوعًا منه Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح أسابيع من أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 week)┌─minus(CAST('1998-06-16', 'Date'), toIntervalWeek(10))─┐
│ 1998-04-07 │
└───────────────────────────────────────────────────────┘subtractYears
أُضيف في: v1.1.0
يطرح عددًا محددًا من السنوات من تاريخ، أو تاريخ ووقت، أو تاريخ أو تاريخ ووقت مُمثَّلَين كسلسلة نصية.
بناء الجملة
subtractYears(datetime, num)الوسيطات
datetime— تاريخ أو تاريخ مع وقت يُطرح منه عدد السنوات المحدد.DateأوDate32أوDateTimeأوDateTime64أوStringnum— عدد السنوات المطلوب طرحه.(U)Int*أوFloat*
القيمة المُعادة
تعيد datetime بعد طرح num سنة منه. Date أو Date32 أو DateTime أو DateTime64
أمثلة
طرح السنوات من أنواع تاريخ مختلفة
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┌─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 البديلة
SELECT dateSub('1998-06-16'::Date, INTERVAL 10 year)┌─minus(CAST('1998-06-16', 'Date'), toIntervalYear(10))─┐
│ 1988-06-16 │
└───────────────────────────────────────────────────────┘timeDiff
أُضيفت في: v23.4.0
تعيد الفرق بالثواني بين تاريخين أو بين قيمتَي تاريخ ووقت.
ويُحسب الفرق على النحو التالي: enddate - startdate.
هذه الدالة مكافئة لـ dateDiff('second', startdate, enddate).
لحساب الفروق الزمنية بوحدات أخرى (مثل الساعات والأيام والأشهر وما إلى ذلك)، استخدم الدالة dateDiff بدلًا من ذلك.
البنية
timeDiff(startdate, enddate)المعاملات
startdate— أول قيمة زمنية تُطرَح (المطروح).DateأوDate32أوDateTimeأوDateTime64enddate— ثاني قيمة زمنية يُطرَح منها (المطروح منه).DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
تعيد الفرق بين enddate وstartdate معبَّرًا عنه بالثواني. Int64
أمثلة
حساب الفرق الزمني بالثواني
SELECT timeDiff(toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) AS res┌───res─┐
│ 90000 │
└───────┘احسب الفرق الزمني وحوّله إلى ساعات
SELECT timeDiff(toDateTime('2018-01-01 22:00:00'), toDateTime('2018-01-02 23:00:00')) / 3600 AS hours┌─hours─┐
│ 25 │
└───────┘يعادل dateDiff بالثواني
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┌─time_diff_result─┬─date_diff_result─┐
│ 259200 │ 259200 │
└──────────────────┴──────────────────┘timeSlot
أُضيف في: v1.1.0
قرّب الوقت إلى بداية فترة زمنية مدتها نصف ساعة.
البنية
timeSlot(time[, time_zone])الوسيطات
time— الوقت المطلوب تقريبه إلى بداية فاصل زمني مدته نصف ساعة.DateTimeأوDate32أوDateTime64time_zone— اختياري. قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية.String
القيمة المعادة
يعيد الوقت بعد تقريبه إلى بداية فاصل زمني مدته نصف ساعة. DateTime
أمثلة
تقريب الوقت إلى فاصل زمني مدته نصف ساعة
SELECT timeSlot(toDateTime('2000-01-02 03:04:05', 'UTC'))┌─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أوDateTime64Duration— مدة الفاصل الزمني بالثواني.UInt32أوDateTime64Size— اختياري. حجم الفترات الزمنية بالثواني. القيمة الافتراضية هي 1800 (30 دقيقة).UInt32أوDateTime64
القيمة المُعادة
يعيد مصفوفة من قيم DateTime/DateTime64 (نوع الإرجاع يطابق نوع StartTime). بالنسبة إلى DateTime64، قد يختلف مقياس القيمة المُعادة عن مقياس StartTime — إذ يُعتمد أعلى مقياس بين جميع الوسيطات المُعطاة. Array(DateTime) أو Array(DateTime64)
أمثلة
إنشاء فترات زمنية لفاصل زمني
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))┌─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— تاريخ أو تاريخ متضمّن للوقت.Stringexpr_time— اختياري. الوقت المراد إضافته إلى القيمة المُحوَّلة.String
القيمة المعادة
تُعيد القيمة المُحوَّلة لـ expr، أو expr بعد إضافة وقت إليه DateTime64(6)
أمثلة
تحويل سلسلة تاريخ إلى DateTime64(6)
SELECT timestamp('2023-12-31') AS ts;┌─────────────────────────ts─┐
│ 2023-12-31 00:00:00.000000 │
└────────────────────────────┘إضافة الوقت إلى سلسلة نصية للتاريخ
SELECT timestamp('2023-12-31 12:00:00', '12:00:00.11') AS ts;┌─────────────────────────ts─┐
│ 2024-01-01 00:00:00.110000 │
└────────────────────────────┘timezone
أُضيفت في: v21.4.0
تعيد اسم المنطقة الزمنية للجلسة الحالية، أو تحوّل إزاحة منطقة زمنية أو اسمها إلى الاسم القياسي للمنطقة الزمنية.
البنية
timezone()الأسماء البديلة: timeZone
الوسيطات
- لا توجد.
القيمة المُعادة
يُرجع اسم المنطقة الزمنية المعياري على هيئة String
أمثلة
مثال على الاستخدام
SELECT timezone()┌─timezone()───────┐
│ Europe/Amsterdam │
└──────────────────┘timezoneOf
أُضيف في: v21.4.0
يعيد اسم المنطقة الزمنية لقيمة من النوع DateTime أو DateTime64.
الصياغة
timezoneOf(datetime)الأسماء البديلة: timeZoneOf
الوسائط
datetime— قيمة من النوعDateTimeأوDateTime64timezone— اختياري. اسم المنطقة الزمنية المطلوب تحويل قيمةdatetimeإليها.String
القيمة المعادة
يرجع اسم المنطقة الزمنية لـ datetime من النوع String
أمثلة
مثال للاستخدام
SELECT timezoneOf(now());┌─timezoneOf(now())─┐
│ Etc/UTC │
└───────────────────┘timezoneOffset
أُضيفت في: v21.6.0
تُرجع فرق المنطقة الزمنية عن UTC بالثواني. وتأخذ الدالة في الحسبان التوقيت الصيفي والتغيّرات التاريخية في المنطقة الزمنية عند التاريخ والوقت المحددين.
الصيغة
timezoneOffset(datetime)الأسماء البديلة: timeZoneOffset
الوسائط
datetime— قيمةDateTimeالمطلوب الحصول على إزاحة المنطقة الزمنية الخاصة بها.DateTimeأوDateTime64
القيمة المُعادة
تعيد إزاحة UTC بالثواني Int32
أمثلة
مثال على الاستخدام
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;┌────────────────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
أمثلة
مثال على الاستخدام
SELECT toDayOfMonth(toDateTime('2023-04-21 10:20:30'))┌─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أوDateTime64mode— اختياري. عدد صحيح يحدد وضع الأسبوع (0-3). تكون القيمة الافتراضية 0 إذا لم يتم تحديده.UInt8timezone— اختياري. المنطقة الزمنية المستخدمة في التحويل.String
القيمة المعادة
تعيد يوم الأسبوع للقيمة Date أو DateTime المحددة. UInt8
أمثلة
مثال على الاستخدام
-- The following date is April 21, 2023, which was a Friday:
SELECT
toDayOfWeek(toDateTime('2023-04-21')),
toDayOfWeek(toDateTime('2023-04-21'), 1)┌─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
أمثلة
مثال على الاستخدام
SELECT toDayOfYear(toDateTime('2023-04-21 10:20:30'))┌─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
أمثلة
مثال على الاستخدام
SELECT toDaysInMonth(toDate('2023-02-01')), toDaysInMonth(toDate('2024-02-01')), toDaysInMonth(toDate('2023-01-01'))┌─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أوDateTime64time_zone— المنطقة الزمنية.String
القيمة المُعادة
تعيد عدد الأيام المنقضية منذ التاريخ 0000-01-01. UInt32
أمثلة
احسب الأيام منذ السنة صفر
SELECT toDaysSinceYearZero(toDate('2023-09-08'))┌─toDaysSinceYearZero(toDate('2023-09-08'))─┐
│ 739136 │
└───────────────────────────────────────────┘toHour
أُضيفت في: v1.1.0
يعيد مكوّن الساعة (0-23) من قيمة DateTime أو DateTime64.
البنية
toHour(datetime)الأسماء البديلة: HOUR
الوسائط
datetime— تاريخ ووقت لاستخراج الساعة منه.DateTimeأوDateTime64
القيمة المُعادة
تُرجِع قيمة الساعة (0-23) من datetime. UInt8
أمثلة
مثال للاستخدام
SELECT toHour(toDateTime('2023-04-21 10:20:30'))┌─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أوDateTime64timezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
يعيد رقم أسبوع ISO وفقًا للمعيار ISO 8601. ويكون رقمًا بين 1 و53. UInt8
أمثلة
الحصول على أرقام أسابيع ISO
SELECT toDate('2016-12-27') AS date, toISOWeek(date) AS isoWeek┌───────date─┬─isoWeek─┐
│ 2016-12-27 │ 52 │
└────────────┴─────────┘قد يقع أسبوع ISO في سنة مختلفة
SELECT toDate('2025-12-29') AS date, toISOWeek(date) AS isoWeek, toYear(date) AS year┌───────date─┬─isoWeek─┬─year─┐
│ 2025-12-29 │ 1 │ 2025 │
└────────────┴─────────┴──────┘toISOYear
أُضيف في: v18.4.0
يحوِّل تاريخًا أو تاريخًا مع وقت إلى رقم السنة وفق معيار ISO.
البنية
toISOYear(datetime)الوسائط
datetime— قيمة من نوع تاريخ أو تاريخ مع وقت.DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
تعيد قيمة الإدخال بعد تحويلها إلى رقم سنة وفق معيار ISO. UInt16
أمثلة
استخراج سنة ISO من قيم التاريخ
SELECT
toISOYear(toDate('2024/10/02')) as year1,
toISOYear(toDateTime('2024-10-02 01:30:00')) as year2┌─year1─┬─year2─┐
│ 2024 │ 2024 │
└───────┴───────┘toLastDayOfMonth
أُضيف في: v1.1.0
يُقرِّب قيمة من نوع تاريخ أو تاريخ مع وقت إلى آخر يوم في الشهر.
البنية
toLastDayOfMonth(value)الأسماء المستعارة: LAST_DAY
الوسيطات
value— التاريخ أو التاريخ مع الوقت المطلوب تقريبه للأعلى إلى آخر يوم من الشهر.DateأوDate32أوDateTimeأوDateTime64
القيمة المعادة
يعيد تاريخ آخر يوم من الشهر للتاريخ أو التاريخ مع الوقت المحدد. Date
أمثلة
التقريب للأعلى إلى آخر يوم من الشهر
SELECT toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))┌─toLastDayOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-04-30 │
└─────────────────────────────────────────────────────┘toLastDayOfWeek
أُضيف في: v23.5.0
يُقرِّب تاريخًا أو تاريخًا ووقتًا إلى أقرب يوم سبت أو أحد.
البنية
toLastDayOfWeek(datetime[, mode[, timezone]])الوسيطات
datetime— تاريخ أو تاريخ ووقت لتحويله.DateأوDateTimeأوDate32أوDateTime64mode— يحدد أول يوم في الأسبوع كما هو موضح في الدالةtoWeek(). القيمة الافتراضية0.UInt8timezone— اختياري. المنطقة الزمنية المستخدمة في التحويل. إذا لم يتم تحديدها، تُستخدم المنطقة الزمنية الخاصة بالخادم.String
القيمة المعادة
تعيد تاريخ أقرب يوم سبت أو أحد، في يوم التاريخ المحدد نفسه أو بعده، وذلك حسب الوضع. Date أو Date32
أمثلة
التقريب للأعلى إلى أقرب يوم سبت أو أحد
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 VerticalRow 1:
──────
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30')): 2023-04-22
toLastDayOfWeek(toDateTime('2023-04-21 10:20:30'), 1): 2023-04-23
toLastDayOfWeek(toDate('2023-04-23')): 2023-04-29
toLastDayOfWeek(toDate('2023-04-23'), 1): 2023-04-23toMicrosecond
أُضيفت في: v25.7.0
تعيد مكوّن الميكروثانية (0-999999) من قيمة DateTime64.
الصياغة
toMicrosecond(datetime)الأسماء المستعارة: MICROSECOND
الوسيطات
datetime— تاريخ ووقت لاستخراج الميكروثانية منه.DateTime64
القيمة المُعادة
تعيد قيمة الميكروثانية ضمن الثانية (0 - 999999) في datetime. UInt32
أمثلة
مثال على الاستخدام
SELECT toMicrosecond(toDateTime64('2023-04-21 10:20:30.456789', 6));┌─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
أمثلة
مثال على الاستخدام
SELECT toMillisecond(toDateTime64('2023-04-21 10:20:30.456', 3));┌─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
أمثلة
مثال على الاستخدام
SELECT toMinute(toDateTime('2023-04-21 10:20:30'))┌─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)الوسيطات
date— التاريخ على هيئة String.StringأوFixedString
القيمة المعادة
يُرجع رقم اليوم اليولياني المعدّل. Int32
أمثلة
تحويل التاريخ إلى رقم اليوم اليولياني المعدّل
SELECT toModifiedJulianDay('2020-01-01')┌─toModifiedJulianDay('2020-01-01')─┐
│ 58849 │
└───────────────────────────────────┘toModifiedJulianDayOrNull
أُضيفت في: v21.1.0
مشابهة لـ toModifiedJulianDay()، ولكن بدلًا من إطلاق استثناءات، تُرجع NULL.
البنية
toModifiedJulianDayOrNull(date)الوسيطات
date— تاريخ بصيغة نصية.StringأوFixedString
القيمة المعادة
تعيد رقم اليوم اليولياني المعدّل إذا كانت قيمة date صالحة، وإلا تُعيد null. Nullable(Int32)
أمثلة
تحويل التاريخ إلى رقم اليوم اليولياني المعدّل مع معالجة null
SELECT toModifiedJulianDayOrNull('2020-01-01');
SELECT toModifiedJulianDayOrNull('0000-00-00'); -- invalid date, returns NULL┌─toModifiedJulianDayOrNull('2020-01-01')─┐
│ 58849 │
└─────────────────────────────────────────┘
┌─toModifiedJulianDayOrNull('0000-00-00')─┐
│ ᴺᵁᴸᴸ │
└─────────────────────────────────────────┘toMonday
أُضيف في: v1.1.0
يُقرِّب التاريخ أو التاريخ مع الوقت نزولًا إلى يوم الاثنين من الأسبوع نفسه. ويُرجع التاريخ.
البنية
toMonday(value)المعاملات
value— تاريخ أو تاريخ متضمّن لوقت، لتقريبه إلى يوم الاثنين من ذلك الأسبوع.DateأوDate32أوDateTimeأوDateTime64
القيمة المعادة
تاريخ يوم الاثنين من الأسبوع نفسه للتاريخ أو التاريخ المتضمّن لوقت المُعطى. Date
أمثلة
التقريب إلى يوم الاثنين من الأسبوع
SELECT
toMonday(toDateTime('2023-04-21 10:20:30')), -- A Friday
toMonday(toDate('2023-04-24')); -- Already a Monday┌─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
الوسائط
datetime— تاريخ أو تاريخ مع وقت لاستخراج الشهر منه.DateأوDate32أوDateTimeأوDateTime64
القيمة المعادة
تعيد رقم شهر التاريخ/الوقت المحدد من النوع UInt8
أمثلة
مثال على الاستخدام
SELECT toMonth(toDateTime('2023-04-21 10:20:30'))┌─toMonth(toDateTime('2023-04-21 10:20:30'))─┐
│ 4 │
└────────────────────────────────────────────┘toMonthNumSinceEpoch
استُحدث في: v25.3.0
يعيد عدد الأشهر منذ عام 1970
الصيغة
toMonthNumSinceEpoch(date)المعاملات
date— تاريخ أو تاريخ ووقت.DateأوDateTimeأوDateTime64
القيمة المُعادة
عدد صحيح موجب
أمثلة
مثال
SELECT toMonthNumSinceEpoch(toDate('2024-10-01'))657toNanosecond
قُدِّم في: v25.7.0
يعيد مكوّن النانوثانية (0-999999999) من قيمة DateTime64.
الصياغة
toNanosecond(datetime)الأسماء البديلة: NANOSECOND
الوسيطات
datetime— قيمة تاريخ ووقت يُستخرج منها جزء النانوثانية.DateTime64
القيمة المعادة
تُرجع النانوثانية ضمن الثانية (0 - 999999999) من datetime. UInt32
أمثلة
مثال على الاستخدام
SELECT toNanosecond(toDateTime64('2023-04-21 10:20:30.123456789', 9));┌─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
أمثلة
مثال على الاستخدام
SELECT toQuarter(toDateTime('2023-04-21 10:20:30'))┌─toQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│ 2 │
└──────────────────────────────────────────────┘toRelativeDayNum
أُضيفت في: v1.1.0
تحوِّل قيمة من نوع تاريخ أو تاريخ ووقت إلى عدد الأيام المنقضية منذ نقطة ثابتة معيّنة في الماضي.
أما النقطة الزمنية الدقيقة فهي تفصيل متعلق بالتنفيذ، ولذلك فهذه الدالة غير مخصّصة للاستخدام بشكل مستقل.
والغرض الرئيسي من هذه الدالة هو حساب الفرق بالأيام بين تاريخين أو قيمتين من نوع تاريخ ووقت، مثل: toRelativeDayNum(dt1) - toRelativeDayNum(dt2).
البنية
toRelativeDayNum(date)الوسائط
date— تاريخ أو تاريخ ووقت.DateأوDateTimeأوDateTime64
القيمة المعادة
يعيد عدد الأيام بدءًا من نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام الأيام النسبية
SELECT toRelativeDayNum(toDate('2023-04-01')) - toRelativeDayNum(toDate('2023-01-01'))┌─minus(toRelativeDayNum(toDate('2023-04-01')), toRelativeDayNum(toDate('2023-01-01')))─┐
│ 90 │
└───────────────────────────────────────────────────────────────────────────────────────┘toRelativeHourNum
أُضيفت في: v1.1.0
تحوّل تاريخًا أو تاريخًا ووقتًا إلى عدد الساعات المنقضية منذ نقطة ثابتة معيّنة في الماضي.
تمثّل النقطة الزمنية الدقيقة تفصيلًا تنفيذيًا، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل.
الغرض الرئيسي من هذه الدالة هو حساب الفرق بالساعات بين تاريخين أو بين قيمتَي تاريخ ووقت، على سبيل المثال: toRelativeHourNum(dt1) - toRelativeHourNum(dt2).
البنية
toRelativeHourNum(date)الوسائط
date— تاريخ أو تاريخ مع وقت.DateأوDateTimeأوDateTime64
القيمة المُعادة
يُرجع عدد الساعات منذ نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
استخراج أرقام الساعات النسبية
SELECT toRelativeHourNum(toDateTime('2023-01-01 12:00:00')) - toRelativeHourNum(toDateTime('2023-01-01 00:00:00')) AS hours_difference┌─hours_difference─┐
│ 12 │
└──────────────────┘toRelativeMinuteNum
أُضيفت في: v1.1.0
تحوّل تاريخًا أو تاريخًا مع وقت إلى عدد الدقائق المنقضية منذ نقطة ثابتة معيّنة في الماضي.
النقطة الزمنية الدقيقة هي تفصيل متعلق بالتنفيذ، ولذلك لا يُقصد استخدام هذه الدالة بمفردها.
الغرض الرئيسي من هذه الدالة هو حساب الفرق بالدقائق بين تاريخين أو بين قيمتَي تاريخ مع وقت، مثل toRelativeMinuteNum(dt1) - toRelativeMinuteNum(dt2).
الصيغة
toRelativeMinuteNum(date)الوسيطات
date— تاريخ أو تاريخ مع وقت.DateأوDateTimeأوDateTime64
القيمة المُعادة
يعيد عدد الدقائق منذ نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام الدقائق النسبية
SELECT toRelativeMinuteNum(toDateTime('2023-01-01 00:30:00')) - toRelativeMinuteNum(toDateTime('2023-01-01 00:00:00')) AS minutes_difference┌─minutes_difference─┐
│ 30 │
└────────────────────┘toRelativeMonthNum
قُدِّمت في: v1.1.0
تحوّل تاريخًا أو تاريخًا مع وقت إلى عدد الأشهر المنقضية منذ نقطة ثابتة معيّنة في الماضي.
النقطة الزمنية الدقيقة هي تفصيل متعلق بالتنفيذ، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل.
الغرض الرئيسي من هذه الدالة هو حساب الفرق بالأشهر بين تاريخين أو تاريخين مع وقت، على سبيل المثال: toRelativeMonthNum(dt1) - toRelativeMonthNum(dt2).
الصياغة
toRelativeMonthNum(date)الوسائط
date— تاريخ أو تاريخ ووقت.DateأوDateTimeأوDateTime64
القيمة المعادة
يُرجع عدد الأشهر منذ نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام الأشهر النسبية
SELECT toRelativeMonthNum(toDate('2023-04-01')) - toRelativeMonthNum(toDate('2023-01-01')) AS months_difference┌─months_difference─┐
│ 3 │
└───────────────────┘toRelativeQuarterNum
أُضيفت في: v1.1.0
تحوِّل تاريخًا أو تاريخًا مصحوبًا بوقت إلى عدد الأرباع المنقضية منذ نقطة ثابتة معيّنة في الماضي.
النقطة الزمنية الدقيقة هي من تفاصيل التنفيذ، لذلك لا يُقصد استخدام هذه الدالة بشكل مستقل.
والغرض الرئيسي من هذه الدالة هو حساب الفرق في الأرباع بين تاريخين أو بين قيمتَي تاريخ مصحوب بوقت، على سبيل المثال: toRelativeQuarterNum(dt1) - toRelativeQuarterNum(dt2).
الصيغة
toRelativeQuarterNum(date)الوسائط
date— تاريخ أو تاريخ مع وقت.DateأوDateTimeأوDateTime64
القيمة المعادة
تُرجع عدد أرباع السنة من نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام أرباع السنة النسبية
SELECT toRelativeQuarterNum(toDate('2023-04-01')) - toRelativeQuarterNum(toDate('2023-01-01')) AS quarters_difference┌─quarters_difference─┐
│ 1 │
└─────────────────────┘toRelativeSecondNum
أُضيفت في: v1.1.0
تحوِّل تاريخًا أو تاريخًا يتضمّن وقتًا إلى عدد الثواني المنقضية منذ نقطة ثابتة معيّنة في الماضي.
النقطة الزمنية الدقيقة هي تفصيل خاص بالتنفيذ، ولذلك لا يُقصد استخدام هذه الدالة بصورة مستقلة.
الغرض الأساسي من هذه الدالة هو حساب الفرق بالثواني بين تاريخين أو بين قيمتَي تاريخ مع وقت، على سبيل المثال toRelativeSecondNum(dt1) - toRelativeSecondNum(dt2).
الصياغة
toRelativeSecondNum(date)المعاملات
date— تاريخ أو تاريخ مع وقت.DateأوDateTimeأوDateTime64
القيمة المُعادة
يعيد عدد الثواني منذ نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام الثواني النسبية
SELECT toRelativeSecondNum(toDateTime('2023-01-01 00:01:00')) - toRelativeSecondNum(toDateTime('2023-01-01 00:00:00')) AS seconds_difference┌─seconds_difference─┐
│ 60 │
└────────────────────┘toRelativeWeekNum
قُدِّمت في: v1.1.0
تحوِّل قيمة تاريخ أو تاريخ مع وقت إلى عدد الأسابيع المنقضية منذ نقطة ثابتة معيّنة في الماضي.
أما النقطة الزمنية الدقيقة فهي من تفاصيل التنفيذ، لذلك فهذه الدالة غير مخصّصة للاستخدام بمفردها.
والغرض الرئيسي من هذه الدالة هو حساب الفرق بالأسابيع بين تاريخين أو قيمتي تاريخ مع وقت، على سبيل المثال: toRelativeWeekNum(dt1) - toRelativeWeekNum(dt2).
البنية
toRelativeWeekNum(date)الوسيطات
date— تاريخ أو تاريخ ووقت.DateأوDateTimeأوDateTime64
القيمة المعادة
تعيد عدد الأسابيع بدءًا من نقطة مرجعية ثابتة في الماضي. UInt32
أمثلة
الحصول على أرقام الأسابيع النسبية
SELECT toRelativeWeekNum(toDate('2023-01-08')) - toRelativeWeekNum(toDate('2023-01-01')) AS weeks_difference┌─weeks_difference─┐
│ 1 │
└──────────────────┘toRelativeYearNum
أُضيفت في: v1.1.0
تحوِّل تاريخًا أو تاريخًا يتضمّن وقتًا إلى عدد السنوات المنقضية منذ نقطة ثابتة معيّنة في الماضي.
والنقطة الزمنية الدقيقة هي من تفاصيل التنفيذ، لذلك لا يُقصد استخدام هذه الدالة
بشكل مستقل. والغرض الرئيسي من هذه الدالة هو حساب الفرق بالسنوات بين تاريخين أو تاريخين يتضمّنان وقتًا، على سبيل المثال: toRelativeYearNum(dt1) - toRelativeYearNum(dt2).
البنية
toRelativeYearNum(date)الوسائط
date— تاريخ أو تاريخ مع وقت.DateأوDateTimeأوDateTime64
القيمة المُعادة
يعيد عدد السنوات بدءًا من نقطة مرجعية ثابتة في الماضي. UInt16
أمثلة
الحصول على أرقام السنوات النسبية
SELECT toRelativeYearNum('2010-10-01'::DateTime) - toRelativeYearNum('2000-01-01'::DateTime)┌─minus(toRelativeYearNum(CAST('2010-10-01', 'DateTime')), toRelativeYearNum(CAST('2000-01-01', 'DateTime')))─┐
│ 10 │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────────┘toSecond
أُضيف في: v1.1.0
يعيد مكوّن الثواني (0-59) من قيمة DateTime أو DateTime64.
البنية
toSecond(datetime)الأسماء البديلة: SECOND
الوسائط
datetime— تاريخ ووقت لاستخراج الثواني منه.DateTimeأوDateTime64
القيمة المُعادة
تُرجع الثانية ضمن الدقيقة (0 - 59) من datetime. UInt8
أمثلة
مثال على الاستخدام
SELECT toSecond(toDateTime('2023-04-21 10:20:30'))┌─toSecond(toDateTime('2023-04-21 10:20:30'))─┐
│ 30 │
└─────────────────────────────────────────────┘toStartOfDay
أُضيف في: v1.1.0
يقرّب قيمة تاريخ ووقت نزولًا إلى بداية اليوم.
الصيغة
toStartOfDay(datetime)الوسائط
القيمة المعادة
يُرجع تاريخًا مع وقت بعد تقريبه نزولًا إلى بداية اليوم. DateTime أو DateTime64
أمثلة
التقريب نزولًا إلى بداية اليوم
SELECT toStartOfDay(toDateTime('2023-04-21 10:20:30'))┌─toStartOfDay(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-04-21 00:00:00 │
└─────────────────────────────────────────────────┘toStartOfFifteenMinutes
أُضيفت في: v1.1.0
يقرّب نزولًا قيمة التاريخ والوقت إلى بداية الفاصل الزمني البالغ خمس عشرة دقيقة.
الصياغة
toStartOfFifteenMinutes(datetime)المعاملات
datetime— تاريخ أو تاريخ ووقت مطلوب تقريبه.DateTimeأوDateTime64
القيمة المُعادة
يعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته خمس عشرة دقيقة. DateTime أو DateTime64
أمثلة
مثال
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 VerticalRow 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:00toStartOfFiveMinutes
أُضيفت في: v22.6.0
تُقرِّب قيمة تاريخ ووقت نزولًا إلى بداية فترة الخمس دقائق الأقرب.
البنية
toStartOfFiveMinutes(datetime)الأسماء البديلة: toStartOfFiveMinute
الوسيطات
datetime— تاريخ ووقت المطلوب تقريبهما.DateTimeأوDateTime64
القيمة المُعادة
تعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته خمس دقائق. DateTime أو DateTime64
أمثلة
مثال
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 VerticalRow 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:00toStartOfHour
تم تقديمه في: v1.1.0
يقرّب تاريخًا ووقتًا نزولًا إلى بداية الساعة.
الصيغة
toStartOfHour(datetime)الوسيطات
datetime— قيمة تاريخية تتضمن وقتًا لتقريبها.DateTimeأوDateTime64
القيمة المُعادة
يعيد القيمة التاريخية بعد تقريبها نزولًا إلى بداية الساعة. DateTime أو DateTime64
أمثلة
التقريب نزولًا إلى بداية الساعة
SELECT
toStartOfHour(toDateTime('2023-04-21 10:20:30'));┌─toStartOfHour(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-04-21 10:00:00 │
└──────────────────────────────────────────────────┘toStartOfISOYear
أُضيفت في: v1.1.0
يقرّب نزولًا تاريخًا أو تاريخًا يتضمن وقتًا إلى اليوم الأول من سنة ISO، والتي قد تختلف عن السنة الميلادية العادية. راجع ISO week date.
البنية
toStartOfISOYear(value)الوسائط
value— التاريخ أو التاريخ مع وقت المراد تقريبُه نزولًا إلى اليوم الأول من سنة ISO.DateأوDate32أوDateTimeأوDateTime64
القيمة المعادة
يعيد اليوم الأول من سنة ISO للتاريخ أو التاريخ مع وقت المحدد. Date
أمثلة
التقريب نزولًا إلى اليوم الأول من سنة ISO
SELECT toStartOfISOYear(toDateTime('2023-04-21 10:20:30'))┌─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).
يُجرى الحساب بالاستناد إلى نقاط زمنية محددة:
| Interval | Start |
|---|---|
| YEAR | السنة 0 |
| QUARTER | 1900 Q1 |
| MONTH | يناير 1900 |
| WEEK | 1970، الأسبوع الأول (01-05) |
| DAY | 1970-01-01 |
| HOUR | (*) |
| MINUTE | 1970-01-01 00:00:00 |
| SECOND | 1970-01-01 00:00:00 |
| MILLISECOND | 1970-01-01 00:00:00 |
| MICROSECOND | 1970-01-01 00:00:00 |
| NANOSECOND | 1970-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]])الأسماء البديلة: date_bin, time_bucket
الوسيط
value— قيمة تاريخ أو تاريخ مع وقت تُقرَّب نزولًا.DateأوDateTimeأوDateTime64x— رقم يمثّل طول الفاصل الزمني. -unit— وحدة الفاصل الزمني: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND, NANOSECOND. -time_zone— اختياري. اسم المنطقة الزمنية كسلسلة نصية. -origin— اختياري. نقطة بدء الحساب (في التوقيع الثاني فقط).
القيمة المُعادة
تعيد بداية الفاصل الزمني الذي تقع ضمنه قيمة الإدخال. DateTime
أمثلة
تقريب الفاصل الزمني الأساسي
SELECT toStartOfInterval(toDateTime('2023-01-15 14:30:00'), INTERVAL 1 MONTH)┌─toStartOfInterval(toDateTime('2023-01-15 14:30:00'), toIntervalMonth(1))─┐
│ 2023-01-01 │
└──────────────────────────────────────────────────────────────────────────┘استخدام نقطة الأصل
SELECT toStartOfInterval(toDateTime('2023-01-01 14:45:00'), INTERVAL 1 MINUTE, toDateTime('2023-01-01 14:35:30'))┌─toStartOfInterval(toDateTime('2023-01-01 14:45:00'), toIntervalMinute(1), toDateTime('2023-01-01 14:35:30'))─┐
│ 2023-01-01 14:44:30 │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘toStartOfMicrosecond
أُضيفت في: v22.6.0
تُقرِّب قيمة تاريخ ووقت نزولًا إلى بداية الميكروثانية.
الصيغة
toStartOfMicrosecond(datetime[, timezone])الوسائط
datetime— التاريخ والوقت.DateTime64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعاملvalue.String
القيمة المُعادة
قيمة الإدخال بعد إزالة الأجزاء الأقل من الميكروثانية DateTime64
أمثلة
استعلام من دون منطقة زمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64);┌────toStartOfMicrosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999000 │
└───────────────────────────────┘استعلام مع تحديد المنطقة الزمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMicrosecond(dt64, 'Asia/Istanbul');┌─toStartOfMicrosecond(dt64, 'Asia/Istanbul')─┐
│ 2020-01-01 13:20:30.999999000 │
└─────────────────────────────────────────────┘toStartOfMillisecond
أُضيف في: v22.6.0
يقرّب تاريخًا مع وقت نزولًا إلى بداية الملّي ثانية.
البنية
toStartOfMillisecond(datetime[, timezone])الوسائط
datetime— التاريخ والوقت.DateTime64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعلَمةvalue.String
القيمة المُعادة
قيمة الإدخال مع أجزاء أصغر من المللي ثانية. DateTime64
أمثلة
استعلام بدون منطقة زمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64);┌────toStartOfMillisecond(dt64)─┐
│ 2020-01-01 10:20:30.999000000 │
└───────────────────────────────┘استعلام مع تحديد المنطقة الزمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfMillisecond(dt64, 'Asia/Istanbul');┌─toStartOfMillisecond(dt64, 'Asia/Istanbul')─┐
│ 2020-01-01 13:20:30.999000000 │
└─────────────────────────────────────────────┘toStartOfMinute
أُضيفت في: v1.1.0
تُقرِّب قيمة تاريخية تتضمن وقتًا نزولًا إلى بداية الدقيقة.
الصياغة
toStartOfMinute(datetime)الوسائط
datetime— تاريخ ووقت يُراد تقريبهما.DateTimeأوDateTime64
القيمة المُعادة
يعيد تاريخًا ووقتًا بعد تقريبهما نزولًا إلى بداية الدقيقة. DateTime أو DateTime64
أمثلة
التقريب نزولًا إلى بداية الدقيقة
SELECT
toStartOfMinute(toDateTime('2023-04-21 10:20:30')),
toStartOfMinute(toDateTime64('2023-04-21 10:20:30.5300', 8))
FORMAT VerticalRow 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:00toStartOfMonth
أُضيف في: v1.1.0
يقرّب تاريخًا أو تاريخًا مع وقت إلى اليوم الأول من الشهر.
الصيغة
toStartOfMonth(value)المعاملات
value— التاريخ أو التاريخ والوقت المراد تقريبُه نزولًا إلى اليوم الأول من الشهر.DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
تُرجِع اليوم الأول من الشهر للتاريخ أو التاريخ والوقت المحدد. Date
أمثلة
التقريب نزولًا إلى اليوم الأول من الشهر
SELECT toStartOfMonth(toDateTime('2023-04-21 10:20:30'))┌─toStartOfMonth(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-04-01 │
└───────────────────────────────────────────────────┘toStartOfNanosecond
تم تقديمه في: v22.6.0
يقرّب قيمة تاريخ مع وقت نزولًا إلى بداية النانوثانية.
البنية
toStartOfNanosecond(datetime[, timezone])الوسيطات
datetime— التاريخ والوقت.DateTime64timezone— اختياري. المنطقة الزمنية للقيمة المعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية للمعاملvalue.String
القيمة المعادة
قيمة الإدخال بدقة النانوثانية. DateTime64
أمثلة
استعلام بدون منطقة زمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64);┌─────toStartOfNanosecond(dt64)─┐
│ 2020-01-01 10:20:30.999999999 │
└───────────────────────────────┘استعلام مع تحديد المنطقة الزمنية
WITH toDateTime64('2020-01-01 10:20:30.999999999', 9) AS dt64
SELECT toStartOfNanosecond(dt64, 'Asia/Istanbul');┌─toStartOfNanosecond(dt64, 'Asia/Istanbul')─┐
│ 2020-01-01 13:20:30.999999999 │
└────────────────────────────────────────────┘toStartOfQuarter
أُضيف في: v1.1.0
يقرّب تاريخًا أو قيمة تاريخ ووقت نزولًا إلى اليوم الأول من الربع. ويكون اليوم الأول من الربع أحد التواريخ التالية: 1 يناير، أو 1 أبريل، أو 1 يوليو، أو 1 أكتوبر.
الصيغة
toStartOfQuarter(value)الوسيطات
value— التاريخ أو التاريخ والوقت المراد تقريبه نزولًا إلى اليوم الأول من الربع.DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
يعيد اليوم الأول من الربع للتاريخ أو التاريخ والوقت المُعطى. Date
أمثلة
التقريب نزولًا إلى اليوم الأول من الربع
SELECT toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))┌─toStartOfQuarter(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-04-01 │
└─────────────────────────────────────────────────────┘toStartOfSecond
أُضيفت في: v20.5.0
يُنزِّل قيمة تاريخ مع وقت إلى بداية الثانية.
الصيغة
toStartOfSecond(datetime[, timezone])الوسائط
datetime— التاريخ والوقت المراد حذف الأجزاء من الثانية منه.DateTime64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة. إذا لم يتم تحديدها، تستخدم الدالة المنطقة الزمنية الخاصة بالمعاملvalue.String
القيمة المُعادة
تعيد قيمة الإدخال من دون الأجزاء من الثانية. DateTime64
أمثلة
استعلام بدون منطقة زمنية
WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64);┌───toStartOfSecond(dt64)─┐
│ 2020-01-01 10:20:30.000 │
└─────────────────────────┘استعلام مع تحديد المنطقة الزمنية
WITH toDateTime64('2020-01-01 10:20:30.999', 3) AS dt64
SELECT toStartOfSecond(dt64, 'Asia/Istanbul');┌─toStartOfSecond(dt64, 'Asia/Istanbul')─┐
│ 2020-01-01 13:20:30.000 │
└────────────────────────────────────────┘toStartOfTenMinutes
أُضيف في: v20.1.0
يقرّب قيمة تاريخ مع وقت بالتنزيل إلى بداية أقرب فترة من عشر دقائق.
البنية
toStartOfTenMinutes(datetime)الوسيطات
datetime— تاريخ ووقت.DateTimeأوDateTime64
القيمة المُعادة
تعيد التاريخ والوقت بعد تقريبهما إلى بداية أقرب فاصل زمني مدته عشر دقائق. DateTime أو DateTime64
أمثلة
مثال
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 VerticalRow 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:00toStartOfWeek
أُضيف في: v20.1.0
يُقرِّب قيمة من نوع تاريخ أو تاريخ مع وقت نزولًا إلى أقرب يوم أحد أو اثنين.
البنية
toStartOfWeek(datetime[, mode[, timezone]])الوسيطات
datetime— تاريخ أو تاريخ ووقت للتحويل.DateأوDateTimeأوDate32أوDateTime64mode— يحدد أول يوم في الأسبوع كما هو موضح في الدالةtoWeek(). القيمة الافتراضية0.UInt8timezone— المنطقة الزمنية المستخدمة في التحويل. إذا لم يتم تحديدها، فستُستخدم المنطقة الزمنية الخاصة بـ الخادم.String
القيمة المعادة
يعيد تاريخ أقرب يوم أحد أو اثنين يوافق التاريخ المحدد أو يسبقه، وذلك حسب الوضع. Date أو Date32
أمثلة
التقريب لأسفل إلى أقرب يوم أحد أو اثنين
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 VerticalRow 1:
──────
toStartOfWeek(toDateTime('2023-04-21 10:20:30')): 2023-04-16
toStartOfWeek(toDateTime('2023-04-21 10:20:30'), 1): 2023-04-17
toStartOfWeek(toDate('2023-04-24')): 2023-04-23
toStartOfWeek(toDate('2023-04-24'), 1): 2023-04-24toStartOfYear
أُضيف في: v1.1.0
تُنزِّل قيمة من نوع تاريخ أو تاريخ مع وقت إلى اليوم الأول من السنة. وتُرجِع التاريخ ككائن Date.
البنية
toStartOfYear(value)الوسيطات
value— التاريخ أو التاريخ مع الوقت المراد تقريبه لأسفل.DateأوDate32أوDateTimeأوDateTime64
القيمة المعادة
اليوم الأول من السنة للتاريخ/الوقت المحدد Date
أمثلة
التقريب لأسفل إلى أول يوم من السنة
SELECT toStartOfYear(toDateTime('2023-04-21 10:20:30'))┌─toStartOfYear(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023-01-01 │
└──────────────────────────────────────────────────┘toTimeWithFixedDate
أُضيفت في: v25.5.0
تستخرج مكوّن الوقت من تاريخ ووقت.
النتيجة المُعادة هي إزاحة إلى نقطة زمنية ثابتة، وهي حاليًا 1970-01-02،
لكن النقطة الزمنية الدقيقة هي تفصيل من تفاصيل التنفيذ وقد تتغير مستقبلًا.
لذلك، لا ينبغي استخدام toTimeWithFixedDate بمفردها.
الغرض الرئيسي من الدالة هو حساب الفرق الزمني بين قيمتين من نوع التاريخ والوقت، مثل: toTimeWithFixedDate(dt1) - toTimeWithFixedDate(dt2).
هذه هي الدالة القديمة toTime التي أُعيدت تسميتها في v25.5 لأن الاسم toTime يُستخدم الآن من قِبل
toTime، التي تحوّل القيم إلى
نوع البيانات Time.
ولا يزال بالإمكان الوصول إليها باسمها القديم toTime عند تمكين الإعداد
use_legacy_to_time (قيمته الافتراضية هي 0 منذ v26.7، لكنها كانت 1 من v25.6 إلى v26.6).
إذا كانت الوسيطة datetime تحتوي على مكوّنات دون الثانية، فستُحذف من قيمة DateTime المُعادة، التي تبلغ دقتها ثانية واحدة.
البنية
toTimeWithFixedDate(datetime[, timezone])الوسيطات
datetime— تاريخ ووقت لتحويله إلى وقت.DateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
تعيد مكوّن الوقت من تاريخ ووقت على شكل إزاحة عن نقطة زمنية ثابتة (المحددة حاليًا بـ 1970-01-02). DateTime
أمثلة
احسب الفرق الزمني بين تاريخين
SELECT toTimeWithFixedDate('2025-06-15 12:00:00'::DateTime) - toTimeWithFixedDate('2024-05-10 11:00:00'::DateTime) AS result, toTypeName(result)┌─result─┬─toTypeName(result)─┐
│ 3600 │ Int32 │
└────────┴────────────────────┘تُهمل الأجزاء الأصغر من الثانية
SELECT toTimeWithFixedDate(toDateTime64('1970-12-10 01:20:30.3000', 3)) AS result, toTypeName(result)┌──────────────result─┬─toTypeName(result)─┐
│ 1970-01-02 01:20:30 │ DateTime │
└─────────────────────┴────────────────────┘الدالة نفسها تُستدعى باسمها القديم legacy
SET use_legacy_to_time = 1;
SELECT toTime(toDateTime64('1970-12-10 01:20:30.3000', 3)) AS result, toTypeName(result)┌──────────────result─┬─toTypeName(result)─┐
│ 1970-01-02 01:20:30 │ DateTime │
└─────────────────────┴────────────────────┘toTimezone
أُضيف في: v1.1.0
يحوّل DateTime أو DateTime64 إلى المنطقة الزمنية المحددة.
لا تتغير القيمة الداخلية للبيانات (عدد ثواني Unix).
يتغير فقط سِمة المنطقة الزمنية للقيمة وتمثيلها النصي.
البنية
toTimezone(datetime, timezone)الأسماء البديلة: toTimeZone
المعاملات
date— القيمة المراد تحويلها.DateTimeأوDateTime64timezone— اسم المنطقة الزمنية المستهدفة.String
القيمة المُعادة
تُرجع نفس الطابع الزمني المُدخل، ولكن مع المنطقة الزمنية المحددة DateTime أو DateTime64
أمثلة
مثال على الاستخدام
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;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: 1546300800toUTCTimestamp
أُضيفت في: v23.8.0
تحوِّل قيمة تاريخ أو تاريخ ووقت من منطقة زمنية إلى طابع زمني بتوقيت UTC. تُضمَّن هذه الدالة أساسًا للتوافق مع Apache Spark وأطر العمل المشابهة.
الصيغة
toUTCTimestamp(datetime, time_zone)الأسماء البديلة: to_utc_timestamp
المعاملات
datetime— قيمة ثابتة من نوع تاريخ أو تاريخ ووقت، أو تعبير.DateTimeأوDateTime64time_zone— قيمة ثابتة من نوع String أو تعبير يمثّل المنطقة الزمنية.String
القيمة المُعادة
تعيد قيمة تاريخ أو تاريخ ووقت في المنطقة الزمنية UTC. DateTime أو DateTime64
أمثلة
تحويل المنطقة الزمنية إلى UTC
SELECT toUTCTimestamp(toDateTime('2023-03-16'), 'Asia/Shanghai')┌─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أوStringtimezone— اختياري. المنطقة الزمنية المستخدمة للتحويل. إذا لم يتم تحديدها، تُستخدم المنطقة الزمنية للخادم.String
القيمة المعادة
تُرجع الطابع الزمني لـ Unix. UInt32
أمثلة
مثال على الاستخدام
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;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: 1509840000toWeek
أُضيفت في: v20.1.0
تعيد هذه الدالة رقم الأسبوع لتاريخ أو قيمة تاريخ ووقت. يتيح لك الشكل ذو الوسيطتين للدالة toWeek() تحديد ما إذا كان الأسبوع يبدأ
يوم الأحد أو يوم الاثنين، وما إذا كانت القيمة المُعادة يجب أن تكون ضمن النطاق من 0 إلى 53 أو من 1 إلى 53.
تُعد toISOWeek() دالة توافقية مكافئة لـ toWeek(date,3).
يوضح الجدول التالي كيفية عمل وسيطة الوضع.
| وضع | اليوم الأول من الأسبوع | النطاق | الأسبوع 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 يناير |
بالنسبة إلى قيم الوضع التي يكون معناها "يحتوي على 4 أيام أو أكثر في هذه السنة"، تُرقَّم الأسابيع وفقًا للمعيار ISO 8601:1988:
- إذا كان الأسبوع الذي يتضمن 1 يناير يحتوي على 4 أيام أو أكثر في السنة الجديدة، فهو الأسبوع 1.
- وإلا، فهو الأسبوع الأخير من السنة السابقة، ويكون الأسبوع التالي هو الأسبوع 1.
بالنسبة إلى قيم الوضع التي يكون معناها "يتضمن 1 يناير"، فإن الأسبوع الذي يتضمن 1 يناير هو الأسبوع 1. ولا يهم عدد الأيام من السنة الجديدة التي يتضمنها ذلك الأسبوع، حتى لو كان يتضمن يومًا واحدًا فقط. أي إذا كان الأسبوع الأخير من ديسمبر يتضمن 1 يناير من السنة التالية، فسيكون هو الأسبوع 1 من السنة التالية.
يمكن أيضًا تحديد الوسيطة الأولى على أنها String بتنسيق تدعمه parseDateTime64BestEffort. يوجد دعم لوسائط السلاسل النصية فقط لأسباب تتعلق بالتوافق مع MySQL، كما تتطلبه بعض أدوات الجهات الخارجية. ونظرًا إلى أن دعم وسائط السلاسل النصية قد يصبح في المستقبل معتمدًا على إعدادات جديدة للتوافق مع MySQL، ولأن تحليل السلاسل النصية بطيء عمومًا، يُوصى بعدم استخدامه.
بنية
toWeek(datetime[, mode[, time_zone]])الأسماء البديلة: week
الوسيطات
datetime— Dateأو تاريخ ووقت لاستخراج رقم الأسبوع منه.DateأوDateTimemode— اختياري. يحدد الوضع من0إلى9اليوم الأول من الأسبوع ونطاق رقم الأسبوع. القيمة الافتراضية هي0. -time_zone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد رقم الأسبوع وفقًا للوضع المحدد. UInt32
أمثلة
الحصول على أرقام الأسابيع باستخدام أوضاع مختلفة
SELECT toDate('2016-12-27') AS date, toWeek(date) AS week0, toWeek(date,1) AS week1, toWeek(date,9) AS week9┌───────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أوDateTime64timezone— اختياري. المنطقة الزمنية للتحويل. إذا جرى توفيرها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا.String
القيمة المُعادة
يعيد رقمًا من النوع UInt32 يحتوي على رقمَي السنة والشهر (YYYY * 100 + MM). UInt32
أمثلة
تحويل التاريخ الحالي إلى تنسيق YYYYMM
SELECT toYYYYMM(now(), 'US/Eastern')┌─toYYYYMM(now(), 'US/Eastern')─┐
│ 202608 │
└───────────────────────────────┘toYYYYMMDD
أُضيف في: v1.1.0
يحوّل قيمة تاريخ أو تاريخ ووقت إلى عدد UInt32 يحتوي على السنة والشهر واليوم (YYYY * 10000 + MM * 100 + DD). ويقبل وسيطة ثانية اختيارية هي timezone. وإذا تم توفيرها، فيجب أن تكون timezone قيمة string constant.
البنية
toYYYYMMDD(datetime[, timezone])الوسيطات
datetime— تاريخ أو تاريخ ووقت للتحويل.DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية المستخدمة في التحويل. إذا تم تحديدها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا.String
القيمة المعادة
يعيد قيمة من النوع UInt32 تحتوي على السنة والشهر واليوم (YYYY * 10000 + MM * 100 + DD). UInt32
أمثلة
حوّل تاريخًا إلى تنسيق YYYYMMDD في منطقة زمنية أخرى
SELECT toYYYYMMDD(toDateTime('2026-01-02 03:04:05', 'UTC'), 'US/Eastern')┌─toYYYYMMDD(toDateTime('2026-01-02 03:04:05', 'UTC'), 'US/Eastern')─┐
│ 20260101 │
└────────────────────────────────────────────────────────────────────┘toYYYYMMDDhhmmss
أُضيفت في: v1.1.0
تحوِّل قيمة من نوع تاريخ أو تاريخ ووقت إلى رقم UInt64 يحتوي على السنة ورقم الشهر (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss).
تقبل وسيطًا اختياريًا ثانيًا للمنطقة الزمنية. وإذا تم توفيره، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا.
البنية
toYYYYMMDDhhmmss(datetime[, timezone])الوسيطات
datetime—Dateأو تاريخ أو تاريخ مع وقت للتحويل.DateأوDate32أوDateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية للتحويل. إذا تم توفيرها، فيجب أن تكون المنطقة الزمنية ثابتًا نصيًا.String
القيمة المُعادة
يعيد عددًا من النوع UInt64 يحتوي على السنة والشهر واليوم والساعة والدقيقة والثانية (YYYY * 10000000000 + MM * 100000000 + DD * 1000000 + hh * 10000 + mm * 100 + ss). UInt64
أمثلة
حوّل تاريخًا ووقتًا إلى تنسيق YYYYMMDDhhmmss
SELECT toYYYYMMDDhhmmss(toDateTime('2023-03-02 16:22:09', 'UTC'), 'US/Eastern')┌─toYYYYMMDDhhmmss(toDateTime('2023-03-02 16:22:09', 'UTC'), 'US/Eastern')─┐
│ 20230302112209 │
└──────────────────────────────────────────────────────────────────────────┘toYear
أُضيفت في: v1.1.0
تُرجع مكوّن السنة (ميلادي) من قيمة Date أو DateTime.
البنية
toYear(datetime)الأسماء البديلة: YEAR
الوسيطات
datetime— تاريخ أو تاريخ مع وقت لاستخراج السنة منه.DateأوDate32أوDateTimeأوDateTime64
القيمة المُعادة
تعيد سنة قيمة Date أو DateTime المُعطاة UInt16
أمثلة
مثال على الاستخدام
SELECT toYear(toDateTime('2023-04-21 10:20:30'))┌─toYear(toDateTime('2023-04-21 10:20:30'))─┐
│ 2023 │
└───────────────────────────────────────────┘toYearNumSinceEpoch
استُحدثت في: v25.3.0
تعيد عدد السنوات المنقضية منذ عام 1970
الصياغة
toYearNumSinceEpoch(date)الوسائط
date— تاريخ أو تاريخ ووقت لتحويله.DateأوDateTimeأوDateTime64
القيمة المُعادة
عدد صحيح موجب
أمثلة
مثال
SELECT toYearNumSinceEpoch(toDate('2024-10-01'))54toYearWeek
أُضيف في: v20.1.0
تعيد هذه الدالة السنة ورقم الأسبوع لتاريخٍ ما. وقد تختلف السنة في النتيجة عن السنة في وسيطة التاريخ في الأسبوع الأول والأسبوع الأخير من السنة.
تعمل وسيطة الوضع بالطريقة نفسها التي تعمل بها وسيطة الوضع في toWeek().
تحذير: قد يختلف رقم الأسبوع الذي تُعيده toYearWeek() عن الرقم الذي تُعيده toWeek(). إذ تُعيد toWeek() دائمًا رقم الأسبوع ضمن سياق السنة المحددة، وإذا أعادت toWeek() القيمة 0، فإن toYearWeek() تُعيد القيمة المقابلة لآخر أسبوع من السنة السابقة. راجع prev_yearWeek في المثال أدناه.
يمكن أيضًا تحديد الوسيطة الأولى على أنها String بتنسيق تدعمه parseDateTime64BestEffort. ولا يوجد دعم لوسيطات السلاسل النصية إلا لأسباب تتعلق بالتوافق مع MySQL، كما تتطلبه بعض الأدوات الخارجية. ونظرًا إلى أن دعم وسائط السلاسل النصية قد يصبح في المستقبل معتمدًا على إعدادات جديدة للتوافق مع MySQL، ولأن تحليل السلاسل النصية بطيء عمومًا، يُوصى بعدم استخدامها.
بنية
toYearWeek(datetime[, mode[, timezone]])اسم بديل: yearweek
وسيطة
datetime— التاريخ أو تاريخ ووقت المراد استخراج السنة ورقم الأسبوع منه.DateأوDateTimemode— اختياري. يحدد الوضع من0إلى9اليوم الأول من الأسبوع ونطاق رقم الأسبوع. القيمة الافتراضية0. -timezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
تعيد السنة ورقم الأسبوع كقيمة عددية صحيحة مدمجة. UInt32
أمثلة
الحصول على تركيبات السنة-الأسبوع باستخدام أوضاع مختلفة
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┌───────date─┬─yearWeek0─┬─yearWeek1─┬─yearWeek9─┬─prev_yearWeek─┐
│ 2016-12-27 │ 201652 │ 201652 │ 201701 │ 202152 │
└────────────┴───────────┴───────────┴───────────┴───────────────┘today
أُضيف في: v1.1.0
يعيد التاريخ الحالي وقت تحليل الاستعلام. وهو مطابق لـ toDate(now()).
البنية
today()الأسماء البديلة: current_date, curdate
الوسيطات
- لا توجد.
القيمة المُعادة
تعيد التاريخ الحالي Date
أمثلة
مثال على الاستخدام
SELECT today() AS today, curdate() AS curdate, current_date() AS current_date FORMAT Pretty┏━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━━━┓
┃ today ┃ curdate ┃ current_date ┃
┡━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━━━┩
│ 2026-08-02 │ 2026-08-02 │ 2026-08-02 │
└────────────┴────────────┴──────────────┘صياغة SQL القياسية بدون أقواس
SELECT TODAY, CURDATE,CURRENT_DATE┌──────TODAY─┬────CURDATE─┬─CURRENT_DATE─┐
│ 2026-08-02 │ 2026-08-02 │ 2026-08-02 │
└────────────┴────────────┴──────────────┘yesterday
أُضيفت في: v1.1.0
لا تقبل أي وسيطات وتُرجِع تاريخ الأمس في إحدى مراحل تحليل الاستعلام.
البنية
yesterday()الوسيطات
- لا شيء.
القيمة المُعادة
يُرجع تاريخ الأمس. Date
أمثلة
الحصول على تاريخ الأمس
SELECT yesterday();
SELECT today() - 1;┌─yesterday()─┐
│ 2026-08-01 │
└─────────────┘
┌─minus(today(), 1)─┐
│ 2026-08-01 │
└───────────────────┘