Atgriež Variant (Long) vērtību, kas norāda laika intervālu skaitu starp diviem norādītajiem datumiem.
Sintakse
DateDiff ( intervāls, datums1, datums2 [, pirmā_nedēļas_diena] [, pirmā_gada_nedēļa] )
Funkcijas DateDiff sintaksē ir šādi argumenti:
Arguments |
Apraksts |
---|---|
intervāls |
Obligāts arguments. Virknes izteiksme, kas ir laika intervāls, ko izmantojat, lai aprēķinātu starpību starp datums1 un datums2. |
datums1, datums2 |
Obligāts arguments. Variants (datums). Divi datumi, kas jāizmanto aprēķinā. |
pirmā_nedēļas_diena |
Neobligāts arguments. A konstante kas norāda nedēļas pirmo dienu. Ja nav norādīta, tiek pieņemts, ka tā ir svētdiena. |
pirmā_gada_nedēļa |
Neobligāts arguments. Konstante, kas norāda gada pirmo nedēļu. Ja nav norādīta, tiek pieņemts, ka pirmā nedēļa ir nedēļa, kurā ir 1. janvāris. |
Iestatījumi
Intervālaarguments ir šādi iestatījumi:
Iestatījums |
Apraksts |
---|---|
gggg |
Gads |
q |
Ceturksnis |
m |
Mēnesis |
y |
Gada diena |
d |
Diena |
w |
Weekday |
ww |
Nedēļa |
h |
Stunda |
n |
Minūte |
s |
Sekunde |
Argumentam pirmā_nedēļas_diena ir šādi iestatījumi:
Konstante |
Vērtība |
Apraksts |
---|---|---|
vbUseSystem |
0 |
Izmantojiet NLS API iestatījumu. |
vbSunday |
1 |
Svētdiena (noklusējums) |
vbMonday |
2 |
Pirmdiena |
vbTuesday |
3 |
Otrdiena |
vbWednesday |
4 |
Trešdiena |
vbThursday |
5 |
Ceturtdiena |
vbFriday |
6 |
Piektdiena |
vbSaturday |
7 |
Sestdiena |
Konstante |
Vērtība |
Apraksts |
---|---|---|
vbUseSystem |
0 |
Izmantojiet NLS API iestatījumu. |
vbFirstJan1 |
1 |
Sākas ar nedēļu, kurā ir 1. janvāris (noklusējums). |
vbFirstFourDays |
2 |
Sāciet ar pirmo nedēļu, kurā jaunajā gadā ir vismaz četras dienas. |
vbFirstFullWeek |
3 |
Sāciet ar pirmo pilno gada nedēļu. |
Piezīmes
Funkciju DateDiff var izmantot , lai noteiktu norādīto laika intervālu skaitu starp diviem datumiem. Piemēram, varat izmantot DateDiff , lai aprēķinātu dienu skaitu starp diviem datumiem vai nedēļu skaitu no šodienas līdz gada beigām.
Lai aprēķinātu dienu skaitu starp datums1 un datums2, varat izmantot gada dienu ("y") vai Dienu ("d"). Ja intervāls ir Nedēļas diena ("w"), DateDiff atgriež nedēļu skaitu starp abiem datumiem. Ja datums1 ir pirmdiena, DateDiff skaita pirmdienu skaitu līdz datumam2. Tiek skaitīts datums2 , bet ne datums1. Tomēr , ja intervāls ir Nedēļa ("ww"), funkcija DateDiff atgriež kalendāra nedēļu skaitu starp abiem datumiem. Tiek skaitīts svētdienu skaits starp datums1 undatums2. DateDiff skaita datumu2 , ja tas ir svētdiena; bet netiek skaitīts datums1, pat ja tas ir svētdiena.
Ja datums1 attiecas uz vēlāku laika punktu, kas ir lielāks par datumu2, funkcija DateDiff atgriež negatīvu skaitli.
Arguments pirmā_nedēļas_diena ietekmē aprēķinus, kuros tiek lietoti intervāla "w" un "ww" simboli.
Ja datums1vai datums2datuma literālis, norādītais gads kļūst par šī datuma pastāvīgu daļu. Tomēr, ja datums1 vai datums2 ir iekļauts pēdiņās (" "), un gads tiek izlaists, kods tiek ievietots katru reizi, kad tiek novērtēta datuma1 vai datuma2 izteiksme. Tas ļauj rakstīt kodu, ko var izmantot dažādos gados.
Salīdzinot 31. decembri līdz uzreiz nākamā gada 1. janvārim, DateDiff uz gadu ("yyyy") atgriež vērtību 1, kaut gan ir pagājusi tikai diena.
Piezīme.: Ja datums1 undatums2, ja rekvizīta Kalendārs iestatījums ir Gregora kalendārs, nodrošinātā datumam ir jābūt Gregora kalendāram. Ja kalendārs ir Hidžras, nodrošinātā datuma vērtībai ir jābūt Hidžras.
DateDiff Query piemēri
Izteiksme |
Rezultāti |
---|---|
SELECT DateDiff("yyyy",#01/01/2010#,[Datumspārdošanas]) AS Izteiksme1 FROM ProductSales; |
Atgriež starpību starp Date2 un Date1 (ja datums1 ir vecākais, bet datumu2 — kā jaunāko) kā "gadu" skaitu. Rezultāts. Starpība starp lauka "Pārdošanas datums" un datuma "01/01/2010" vērtībām kā "Gadu skaits". |
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "DatumsPārdošanas datums" kā "Ceturkšņu skaits" (atbilstoši kalendāra gadam), un tiek parādīta kolonnā "DienasPārdošanas". atgriež starpību starp sistēmas datumu un "Datumspārdošanas datums" kā "Mēnešu skaits" un parāda kolonnā "DienasPārdošanas". |
SELECT DateDiff("y",[Datumspārdošanas_datums],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "Datumspārdošanas datums" kā "Dienu skaits" un parāda kolonnā "DienasPārdošanas". |
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "Datumspārdošanas datums" kā "Dienu skaits" un parāda kolonnā "DienasPārdošanas". |
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "Datumspārdošanas datums" kā "Darbdienu" skaitu, un parāda kolonnā "DienasPārdošanas". Ja "Datumspārdošanas datums" ir pirmdienā, DateDiff skaita pirmdienu skaitu līdz sistēmas datumam. Tiek skaitīts sistēmas datums, bet ne vērtība "Datumspārdošanas datums". |
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "Datumspārdošanas datums" kā "kalendārs nedēļas" skaitu, un parāda kolonnā "DienasSinceSale". Tiek skaitīts svētdienu skaits starp "Datumspārdošanas datums" un "sistēmas datums". Sistēmas datums tiks skaitīts, ja tas iekrīt svētdienā. bet netiek ieskaitīts "Pārdošanas datums", pat ja tas iekrīt svētdienā. |
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "DateTime" kā "Stundu" skaitu, un parāda kolonnā "DienasSinceSale". |
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "DateTime" kā "minūšu" skaitu un parāda kolonnā "DienasPārdošanas". |
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; |
Atgriež starpību starp sistēmas datumu un "DateTime" kā "sekunžu" skaitu, un parāda kolonnā "DienasPārdošanas". |
Izteiksmes piemērs
Funkcijas DateDiff izmantošana izteiksmē Funkciju DateDiff varat izmantot visur, kur varat izmantot izteiksmes. Piemēram, pieņemsim, ka jums ir forma, ko izmantojat, lai izpildītu klientu pasūtījumus. Tabulā Pasūtījumi ir lauks ar nosaukumu ReceiveBefore, kurā ir datums, līdz kuram klientam jāsaņem pasūtījums. Funkciju DateDiff var izmantot ar formas tekstlodziņu, lai parādītu, cik dienas jāpaiet, pirms pasūtījums ir jānosūta.
Pieņemot, ka pasūtījuma nosūtīšanai ir nepieciešamas desmit dienas, tekstlodziņa rekvizīts Vadīklas avots ir jāiestata šādi:
=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10
Atverot formu formas skatā, tekstlodziņā tiek parādīts dienu skaits, kas pa kreisi pirms pasūtījuma ir jānosūta. Ja vēl nav vairāk nekā 10 dienas, pirms klientam ir jāsaņem pasūtījums, numurs tekstlodziņā ir negatīvs un norāda, cik dienas ilgi būs nokavēts pasūtījums, ja tas tiks nosūtīts uzreiz.
VBA piemērs
DateDiff funkcijas izmantošana VBA kodā
Šajā piemērā funkcija DateDiff tiek izmantota, lai parādītu dienu skaitu starp norādīto datumu un šodienu.
Dim TheDate As Date ' Declare variables.
Dim Msg TheDate = InputBox("Enter a date") Msg = "Days from today: " & DateDiff("d", Now, TheDate) MsgBox Msg