הפונקציה DateDiff

חל על
Access של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

החזרת משתנה (ארוך) המציין את מספר מרווחי הזמן בין שני תאריכים.

תחביר

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

הפונקציה DateDiff כוללת את הארגומנטים הבאים:

ארגומנט תיאור
interval נדרש. ביטוי מחרוזת שהוא מרווח הזמן שבו אתה משתמש לחישוב ההפרש בין ל date1 - date2.
date1, date2 נדרש. משתנה (תאריך). שני תאריכים שבהם ברצונך להשתמש בחישוב.
firstdayofweek אופציונלי. קבוע המציין את היום הראשון בשבוע. אם לא תציין אותו, הפונקציה תניח את יום ראשון.
firstweekofyear אופציונלי. קבוע המציין את השבוע הראשון בשנה. אם לא תציין אותו, השבוע הראשון הוא השבוע שבו חל 1 בינואר.

הגדרות

לארגומנט interval יש הגדרות אלה:

הגדרה תיאור
yyyy שנה
q רבעון
m חודש
y יום בשנה
d יום
w Weekday
ww שבוע
h Hour
n Minute
s Second

לארגומנט firstdayofweek יש הגדרות אלה:

קבוע Value תיאור
vbUseSystem 0 משתמש בהגדרת ה- API של NLS.
vbSunday 1 יום ראשון (ברירת מחדל)
vbMonday 2 שני
vbTuesday 3 שלישי
vbWednesday 4 רביעי
vbThursday 5 חמישי
vbFriday 6 שישי
vbSaturday 7 שבת
קבוע Value תיאור
vbUseSystem 0 משתמש בהגדרת ה- API של NLS.
vbFirstJan1 1 מתחיל בשבוע שבו חל 1 בינואר (ברירת מחדל).
vbFirstFourDays 2 מתחיל בשבוע הראשון הכולל לפחות ארבעה ימים בשנה החדשה.
vbFirstFullWeek 3 מתחיל מהשבוע המלא הראשון בשנה.

הערות

באפשרותך להשתמש בפונקציה DateDiff כדי לקבוע כמה מרווחי זמן שצוינו קיימים בין שני תאריכים. לדוגמה, באפשרותך להשתמש DateDiff כדי לחשב את מספר הימים בין שני תאריכים או את מספר השבועות בין היום לסוף השנה.

כדי לחשב את מספר הימים בין date1 ו- date2, באפשרותך להשתמש ביום בשנה ("y") או ביום ("d"). כאשר interval הוא יום חול ("w"), DateDiff החזרת מספר השבועות בין שני התאריכים. אם date1 נופל ביום שני, DateDiff מונה את מספר ימי שני עד date2. זה נחשב, date2 אבל לא date1. עם interval זאת, אם הוא שבוע ("ww"), הפונקציה DateDiff מחזירה את מספר השבועות בלוח השנה בין שני התאריכים. היא סופרת את מספר ימי ראשון בין ל date1 - date2. DateDiff היא נחשבת date2 אם היא נופלת ביום ראשון, אך היא לא date1נחשבת , גם אם היא נופלת ביום ראשון.

אם date1 מתייחס לנקודה מאוחרת יותר בזמן מאשר date2, הפונקציה DateDiff מחזירה מספר שלילי.

הארגומנט firstdayofweek משפיע על חישובים המשתמשים בסימני "w" המרווח "ww" ו- .

אם date1 או date2 הוא ליטרל תאריך, השנה שצוינה הופכת לחלק קבוע של תאריך זה. עם זאת, date1 אם date2 או הוא מוקף במרכאות כפולות (" "), ואתה מושמט מהשנה, date1date2 השנה הנוכחית נוספת לקוד שלך בכל פעם שהביטוי או מוערך. הדבר מאפשר לכתוב קוד שניתן להשתמש בו בשנים שונות.

כאשר אתה משווה בין 31 בדצמבר ל- 1 בינואר בשנה הבאה, DateDiff עבור Year ("yyyy") מחזיר 1 למרות שחלף יום אחד בלבד.

הערה

עבור date1 ו date2- , אם הגדרת Calendar המאפיין היא לועזית, התאריך שסופק חייב להיות לועזי. אם לוח השנה הוא איסלמי, התאריך שסופק חייב להיות איסלמי.

דוגמאות לשאילתת DateDiff

ביטוי תוצאות
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; החזרת ההפרש, בשנים, בין 01/01/2010 התאריך לבין הערכים DateofSale בשדה.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; מחזירה את ההפרש, ברבעים בהתבסס על השנה קלנדרית, 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תאריך המערכת ל- , ומציגה אותו DaysSinceSale בעמודה. היא סופרת את מספר ימי ראשון בין DateofSale תאריך המערכת לתאריך. היא סופרת את תאריך המערכת אם הוא נופל ביום ראשון, DateofSaleאך הוא לא נחשב , גם אם הוא נופל ביום ראשון.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; הפונקציה מחזירה את ההפרש, בשעות, בין תאריך DateTimeהמערכת ל- , ומציגה אותו DaysSinceSale בעמודה.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; החזרת ההפרש, בדקות, בין תאריך המערכת DateTimeל- , ומציגה אותו DaysSinceSale בעמודה.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; מחזירה את ההפרש, בשניות, בין תאריך המערכת DateTimeל- , ומציגה אותו DaysSinceSale בעמודה.

שימוש בפונקציה DateDiff בביטוי

באפשרותך להשתמש בפונקציה DateDiff בכל מקום שבו ניתן להשתמש בביטויים. לדוגמה, נניח שיש לך טופס שבו אתה משתמש כדי למלא הזמנות של לקוחות. בטבלה Orders, יש לך שדה בשם ReceiveBefore המכיל את התאריך שבו הלקוח צריך לקבל את ההזמנה. באפשרותך להשתמש בפונקציה DateDiff עם תיבת טקסט בטופס כדי להציג את מספר הימים נותרו לפני שליחת ההזמנה.

בהנחה שיחלפו עשרה ימים כדי לשלוח הזמנה כלשהי, הגדר את המאפיין מקור פקד של תיבת הטקסט באופן הבא:

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

בעת פתיחת הטופס בתצוגת טופס, תיבת הטקסט מציגה את מספר הימים נותרו לפני שליחת ההזמנה. אם נותרו פחות מ- 10 ימים לפני שהלקוח צריך לקבל את ההזמנה, המספר בתיבת הטקסט שלילי. הוא מציין כמה ימים מאוחר יהיה ההזמנה אם תשווק אותה באופן מיידי.

שימוש בפונקציה 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

למידע נוסף

בחירת פונקציית התאריך המתאימה