Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Връща стойност от тип Variant (Long), указваща броя времеви интервали между две указани дати.

Синтаксис

DateDiff ( интервал; дата1; дата2 [, първи ден от седмицата] [, първа седмица от годината] )

Синтаксисът на функцията DateDiff има следните аргументи:

Аргумент

Описание

интервал

Задължително. Израз във формата на низ, представляващ интервала от време, който използвате за изчисляване на разликата между дата1 и дата2.

date1, date2

Задължително. Variant (Date). Двете дати, които искате да използвате в изчислението.

първи ден от седмицата

Незадължително. константа, който указва първия ден от седмицата. Ако не бъде указан, се приема "Неделя".

първа седмица от годината

Незадължително. Константа, която указва първата седмица от годината. Ако не бъде указана, се приема, че първата седмица е седмицата, в която настъпва 1 януари.

Настройки

Интервалът ,аргумент има следните настройки:

Настройка

Описание

yyyy

Година

q

Тримесечие

m

Месец

y

Ден от годината

d

Ден

w

Weekday

ww

Седмица

ч

Час

м

Минута

с

Секунда

Първият аргумент от седмицата има следните настройки:

Константа

Value

Описание

vbUseSystem

0

Използвайте настройката за NLS API.

vbSunday

1

Неделя (по подразбиране)

vbMonday

2

Понеделник

vbTuesday

3

Вторник

vbWednesday

4

Сряда

vbThursday

5

Четвъртък

vbFriday

6

Петък

vbSaturday

7

Събота.

Константа

Value

Описание

vbUseSystem

0

Използвайте настройката за NLS API.

vbFirstJan1

1

Започнете със седмицата, в която се случва 1 януари (по подразбиране).

vbFirstFourDays

2

Започнете с първата седмица, която има поне четири дни през новата година.

vbFirstFullWeek

3

Започнете с първата пълна седмица от годината.

Забележки

Можете да използвате функцията DateDiff, за да определите колко зададени времеви интервали съществуват между две дати. Можете например да използвате DateDiff , за да изчислите броя на дните между две дати или броя седмици между днешната дата и края на годината.

За да изчислите броя на дните между дата1 и дата2, можете да използвате или Ден от годината ("y"), или Ден ("д"). Когато интервал е Weekday ("w"), DateDiff връща броя на седмиците между двете дати. Ако "дата1 " попада в понеделник, DateDiff преброява броя на понеделниките до датата2. Тя преброява датата2, но не и датата1. Ако интервал е Седмица ("ww"), обаче функцията DateDiff връща броя на календарните седмици между двете дати. Той пресмята броя на неделите между дата1 и дата2. DateDiff брои датата2 , ако попада в неделя; но не се брои датата1, дори и да пада в неделя.

Ако дата1 препраща към по-късна точка във времето от дата2, функцията DateDiff връща отрицателно число.

Аргументът "първи ден от седмицата " засяга изчисления, които използват символите за интервал "w" и "ww".

Ако дата1 или дата2 е валиден формат за дата, указаната година става постоянна част от тази дата. Ако обаче дата1 или дата2 са оградени с двойни кавички (" ") и пропуснете годината, текущата година се вмъква във вашия код всеки път, когато се изчислява изразът date1 или date2 . Това дава възможност да пишете код, който може да се използва в различни години.

Когато се сравнява 31 декември до 1 януари на следващата година веднага, DateDiff за Година ("гг") връща 1, въпреки че е изминал само един ден.

Забележка:  За дата1 и дата2, ако настройката на свойството Календар е Григорианска, подадената дата трябва да бъде григориански. Ако календарът е хиджри, предоставената дата трябва да бъде Хиджри.

Примери за заявка DateDiff

Израз

Резултати

SELECT DateDiff("гггг";#01.01.2010#;[DateofSale]) AS Израз1 FROM Продажби на продукти;

Връща разликата между Дата2 и Дата1 (дата1 като най-стара и дата2 като най-нова) като брой "Години". Резултат: Разлика между стойностите в полето "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" като брой "Календарни седмици" и се показва в колоната "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

Когато отворите формуляра в изглед за формуляр, текстовото поле показва оставащия брой дни преди изпращането на поръчката. Ако остават по-малко от 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

Вж. също

Избиране на правилната функция за дата

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.