تقوم بإرجاع متغير (نوع بيانات طويل) يحدد عدد الفواصل الزمنية بين تاريخين محددين.

بناء الجملة

DateDiff ( فاصل زمني، تاريخ1، تاريخ2 [، أول أيام الأسبوع] [، أولweekofyear] )

بناء جملة الدالة DateDiff على هذه الوسيطات:

تلميح:  في Access 2010، يكون "منشئ التعبير" به IntelliSense، حيث يمكنك معرفة الوسيطات التي يتطلبها التعبير. 

الوسيطة

الوصف

فاصل

مطلوبة. تعبير السلسلة هو الفاصل الزمني للوقت الذي تستخدمه لحساب الفرق بين التاريخ 1والتاريخ 2.

date1, date2

مطلوبة. متغير (تاريخ). تاريخان تريد استخدامهم في العملية الحسابية.

أول أيام الأسبوع

اختياري. جزء ثابت يحدد اليوم الأول من الأسبوع. إذا لم يكن محددا، فيفترض أن يوم الأحد.

أولweekofyear

اختياري. ثابت يحدد الأسبوع الأول من السنة. إذا لم يكن محددا، فيفترض أن الأسبوع الأول هو الأسبوع الذي يقع فيه التاريخ 1 يناير.

الإعدادات

الفاصل وسيطة الإعدادات التالية:

الإعداد

الوصف

yyyy

السنة

q

ربع السنة

m

الشهر

y

يوم في السنة

d

يوم

w

Weekday

ww

الأسبوع

h

الساعة

د

الدقيقة

s

الثانية

وسيطة أول أيام الأسبوع لها هذه الإعدادات:

ثابت

القيمة

الوصف

vbUseSystem

0

استخدم إعداد NLS API.

vbSunday

1

الأحد (افتراضي)

vbMonday

2

الاثنين

vbTuesday

3

الثلاثاء

vbWednesday

4

الأربعاء

vbThursday

5

الخميس

vbFriday

6

الجمعة

vbSaturday

7

السبت

ثابت

القيمة

الوصف

vbUseSystem

0

استخدم إعداد NLS API.

vbFirstJan1

1

تبدأ الأسبوع الذي يقع فيه 1 يناير (افتراضي).

vbFirstFourDays

2

ابدأ الأسبوع الأول الذي له أربعة أيام على الأقل في السنة الجديدة.

vbFirstFullWeek

3

ابدأ بأسبوع كامل أول من السنة.

ملاحظات

يمكنك استخدام الدالة DateDiff لتحديد عدد الفواصل الزمنية المحددة الموجودة بين تاريخين. على سبيل المثال، يمكنك استخدام DateDiff لحساب عدد الأيام بين تاريخين، أو عدد الأسابيع بين اليوم ونهاية السنة.

لحساب عدد الأيام بين التاريخ1 والتاريخ يمكنك استخدام يوم من السنة ("y") أو يوم ("d"). عندما يكون الفاصل الزمني يوم الأسبوع ("w")، ترجع DateDiff عدد الأسابيع بين التاريخين. إذا كان التاريخ1 يقع في يوم الاثنين، تحسب DateDiff عدد الاثنين حتى التاريخ 2. تحسب التاريخ 2 وليس التاريخ 1. إذا كان الفاصل الزمني الأسبوع ("ww")، فإن الدالة DateDiff ترجع عدد أسابيع التقويم بين التاريخين. تحسب عدد أيام الأحد بين التاريخ 1 والتاريخ 2.تحسب DateDiffالتاريخ2 إذا كان يقع يوم الأحد؛ ولكنه لا يحتسب التاريخ1،حتى لو كان يقع في يوم الأحد.

إذا كانت date1 تشير إلى نقطة زمنية لاحقة من التاريخ 2،ترجع الدالة DateDiff رقما سالبة.

تؤثر الوسيطة firstdayofweek على العمليات الحسابية التي تستخدم رمزي الفاصل "w" و"ww".

إذا كان التاريخ 1أو التاريخ 2أحرف التاريخ ، تصبح السنة المحددة جزءا دائما من ذلك التاريخ. ومع ذلك، إذا كان التاريخ1 أو التاريخ2 محاطا بين علامات اقتباس مزدوجة (" ")، وأحذفت السنة، يتم إدراج السنة الحالية في التعليمات البرمجية في كل مرة يتم فيها تقييم تعبير التاريخ1 أو التاريخ2. هذا يجعل من الممكن كتابة التعليمات البرمجية التي يمكن استخدامها في سنوات مختلفة.

عند مقارنة 31 ديسمبر إلى 1 يناير من السنة التالية مباشرة، ترجع DateDiff for Year ("yyyy") 1، على الرغم من مرور يوم واحد فقط.

ملاحظة:  بالنسبة إلى التاريخ1 والتاريخ إذا كان إعداد خاصية التقويم ميلاديا، فيجب أن يكون التاريخ الذي تم توفيره ميلاديا. إذا كان التقويم هو الهجري، فيجب أن يكون التاريخ الذي تم توفيره هو الهجري.

أمثلة على استعلام DateDiff

التعبير

النتائج

SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

ترجع الفرق بين التاريخ2 والتاريخ1 (يعتبر التاريخ 1 أقدم وتاريخ2 كالاحدث) كعدد "السنوات". النتيجة: الفرق بين القيم في الحقل "DateofSale" والتاريخ "01/01/2010" كعدد "السنوات".

SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "أرباع السنة" (استنادا إلى السنة المحدثة) وتعرض في العمود "DaysSiنسSale". ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "الأشهر" وتعرض في العمود "DaysSiنسSale".

SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "الأيام" وتعرض في العمود "DaysSiنسSale".

SELECT DateDiff("d",[DateofSale],Date()) AS DaysSiواSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "الأيام" وتعرض في العمود "DaysSiنسSale".

SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "أيام الأسبوع" وتعرض في العمود "DaysSiنسSale". إذا وقعت "DateofSale" يوم الاثنين، تحسب DateDiff عدد الاثنين حتى تاريخ النظام. فهي تحسب تاريخ النظام وليس القيمة في "DateofSale".

SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSiنسSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateofSale" كعدد "أسابيع Calender" وتعرض في العمود "DaysSiنسSale". تحسب عدد أيام الأحد بين "DateofSale" و"تاريخ النظام". سيتم حساب تاريخ النظام إذا كان يقع يوم الأحد؛ ولكن لا تحتسب "DateofSale"، حتى لو كان يقع يوم الأحد.

SELECT DateDiff("h",[DateTime],Date()) AS DaysSiنسSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateTime" كعدد "الساعات" وتعرض في العمود "DaysSiنسSale".

SELECT DateDiff("n",[DateTime],Date()) AS DaysSiواSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateTime" كعدد "الدقائق" وتعرض في العمود "DaysSiنسSale".

SELECT DateDiff("s",[DateTime],Date()) AS DaysSiنسSale FROM ProductSales;

ترجع الفرق بين تاريخ النظام و"DateTime" كعدد "الثواني" وتعرض في العمود "DaysSinceSale".

مثال لتعبير

استخدام الدالة DateDiff في تعبير     يمكنك استخدام الدالة DateDiff أينما يمكنك استخدام التعبيرات. على سبيل المثال، لنفترض أن لديك نموذجا تستخدمه لتنفيذ طلبات العملاء. في جدول "الطلبات"، لديك حقل يسمى ReceiveBefore يحتوي على التاريخ الذي يحتاج العميل إلى تلقي الطلب حسبه. يمكنك استخدام الدالة DateDiff مع مربع نص في النموذج لعرض عدد الأيام التي تبقى قبل أن يتم شحن الطلب.

إذا افترضنا أن شحن أي طلب يستغرق عشرة أيام، يمكنك تعيين خاصية "مصدر عنصر التحكم" لمربع النص كما يلي:

=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10

عند فتح النموذج في طريقة عرض النموذج، يعرض مربع النص عدد الأيام التي تبقى قبل أن يتم شحن الطلب. إذا بقي أقل من 10 أيام قبل أن يحتاج العميل إلى تلقي الطلب، فإن الرقم في مربع النص سالب ويشير إلى عدد الأيام المتأخرة في الطلب إذا تم شحنه على الفور.

مثال VBA

استخدام الدالة DateDiff في التعليمات البرمجية ل VBA    

يستخدم هذا المثال الدالة DateDiff لعرض عدد الأيام بين تاريخ معين واليوم.

Dim TheDate As Date    ' Declare variables.
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg

اختيار دالة التاريخ الصحيحة

هل تحتاج إلى مزيد من المساعدة؟

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Microsoft Insider

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة الترجمة؟

ما الذي أثّر في تجربتك؟

هل لديك أي ملاحظات إضافية؟ (اختياري)

نشكرك على ملاحظاتك!

×