הפונקציה 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"). When interval is Weekday ("w"), DateDiff מחזירה את מספר השבועות בין שני התאריכים. אם date1 נופל ביום שני, DateDiff סופר את מספר ימי שני עד date2. זה נחשב date2 אבל לא date1. עם זאת, אם interval הוא Week ("ww"), הפונקציה DateDiff מחזירה את מספר השבועות הקלנדריים בין שני התאריכים. היא סופרת את מספר ימי ראשון בין date1 ל date2- . DateDiff date2 נחשב אם הוא נופל ביום ראשון, אך הוא אינו נחשבdate1, גם אם הוא נופל ביום ראשון.

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

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

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

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

הערה

For 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 בכל מקום שבו ניתן להשתמש בביטויים. לדוגמה, נניח שיש לך טופס שבו אתה משתמש כדי למלא הזמנות של לקוחות. בטבלה 'הזמנות', יש לך שדה בשם ReceiveBefore המכיל את התאריך שבו הלקוח צריך לקבל את ההזמנה. באפשרותך להשתמש בפונקציה DateDiff עם תיבת טקסט בטופס כדי להציג את מספר הימים שנותרו עד שההזמנה חייבת להישלח.

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

=DateDiff("d", Now(), [Orders].[ReceiveBefore])-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

למידע נוסף

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