Applies ToAccess لـ Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

بناء الجملة

DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )

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

الوسيطة

الوصف

فاصل

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

date1, date2

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

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

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

أولweekofyear

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

الإعدادات

يحتوي الفاصل الزمنيوسيطة على هذه الإعدادات:

الإعداد

الوصف

yyyy

السنة

q

ربع السنة

m

الشهر

y

يوم من السنة

d

اليوم

w

Weekday

ww

الأسبوع

h

الساعة

د

الدقيقة

s

الثانية

تحتوي وسيطة firstdayofweek على هذه الإعدادات:

ثابت

قيمة

الوصف

نظام 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والتاريخ2، يمكنك استخدام إما يوم السنة ("y") أو اليوم ("d"). عندما يكون الفاصل الزمني هو Weekday ("w")، ترجع DateDiff عدد الأسابيع بين التاريخين. إذا كان التاريخ1 يقع في يوم الاثنين، فإن DateDiff تحسب عدد أيام الاثنين حتى التاريخ2. يحسب التاريخ 2 ولكن ليس التاريخ1. إذا كان الفاصل الزمني هو Week ("ww")، فإن الدالة DateDiff ترجع عدد أسابيع التقويم بين التاريخين. تحسب عدد أيام الأحد بين التاريخ1والتاريخ2. يحسب DateDiffالتاريخ 2 إذا كان يقع يوم الأحد؛ ولكنه لا يحسب التاريخ1، حتى لو وقع يوم الأحد.

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

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

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

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

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

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

تعبير

النتائج

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

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

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

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

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

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

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

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

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

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

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

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

SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

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

SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

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

SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

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

مثال لتعبير

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

بافتراض أن شحن أي أمر يستغرق عشرة أيام، يمكنك تعيين الخاصية Control Source لمربع النص كما يلي:

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

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

مثال VBA

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

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

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

اطلع أيضاً على

اختر دالة التاريخ المناسبة

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

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.