Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Повертає значення типу Variant (Long), яке задає кількість часових інтервалів між двома вказаними датами.

Синтаксис

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

Синтаксис функції DateDiff має такі аргументи:

Аргумент

Опис

interval

Обов’язковий аргумент. Рядковий вираз, що є проміжком часу, який використовується для обчислення різниці між значеннями date1 і date2.

date1, date2

— обов’язковий аргумент. Variant (Date). Дві дати, які потрібно використовувати в обчисленні.

firstdayofweek

Необов’язковий аргумент. Константа, яка задає перший день тижня. Якщо це значення не задано, вважається, що це неділя.

firstweekofyear

Необов’язковий аргумент. Константа, яка задає перший день року. Якщо це значення не задано, першим тижнем вважається тиждень, у який настає 1 січня.

Параметри

Інтерваларгумент має такі настройки:

Параметр

Опис

yyyy

Рік

q

Квартал

m

Місяць

y

День року

d

День

w

День тижня

ww

Тиждень

h

Година

n

Хвилина

s

Секунда

Аргумент firstdayofweek має такі параметри:

Константа

Значення

Опис

vbUseSystem

0

Використовуйте параметр API NLS.

vbSunday

1

Неділя (за замовчуванням)

vbMonday

2

Понеділок

vbTuesday

3

Вівторок

vbWednesday

4

Середа

vbThursday

5

Четвер

vbFriday

6

П’ятниця

vbSaturday

7

Субота

Константа

Значення

Опис

vbUseSystem

0

Використовуйте параметр API NLS.

vbFirstJan1

1

Почати з тижня, до якого належить 1 січня (за замовчуванням).

vbFirstFourDays

2

Почати з першого тижня, який має принаймні чотири дні нового року.

vbFirstFullWeek

3

Почати з першого повного тижня року.

Примітки

За допомогою функції DateDiff можна визначити, скільки вказаних проміжків часу існує між двома датами. Наприклад, ви можете використати функцію DateDiff, щоб обчислити кількість днів між двома датами або кількість тижнів від сьогоднішнього дня до кінця року.

Щоб обчислити кількість днів між датою1 і датою2, можна скористатися днем року ("y") або днем ("d"). Якщо аргумент interval має значення Weekday ("w"), функція DateDiff повертає кількість тижнів між двома датами. Якщо date1 припадає на понеділок, dateDiff підраховує кількість понеділків до дати2. Він підраховує значення date2, але не date1. Якщо аргумент interval має значення Week ("ww"), функція DateDiff повертає кількість календарних тижнів між двома датами. Він підраховує кількість неділь між датою1 і датою2. DateDiff рахує дату2 , якщо вона припадає на неділю; але вона не враховує дату1, навіть якщо вона припадає на неділю.

Якщо date1 посилається на пізніший час, ніж date2, функція DateDiff повертає від’ємне число.

Аргумент firstdayofweek впливає на обчислення, у яких використовуються символи проміжку часу "w" і "ww".

Якщо date1 або date2 – це літерал дати, указаний рік стає невід’ємною частиною цієї дати. Проте, якщо date1 або date2 взято в подвійні лапки (" "), і ви опустили рік, то у ваш код щоразу вставлятиметься поточний рік, коли оцінюватиметься вираз date1 або date2. Це дає змогу написати код, який можна використовувати в різні роки.

Порівнюючи 31 грудня з 1 січня наступного року, функція DateDiff для року ("yyyy") повертає 1, незважаючи на те, що минув лише один день.

Примітка.:  Для аргументів date1 і date2, якщо властивість Calendar має значення Gregorian, то й отримане значення відповідатиме григоріанському календарю. Якщо це календар хіджри, отримана дата відповідатиме цьому календарю.

Приклади запиту DateDiff

Вираз

Результати

SELECT DateDiff("yyyy",#01.01.2010#,[DateofSale]) AS Вираз1 FROM ProductSales;

Повертає різницю між датою2 та датою1 (найдавнішою датою та датою2 як найновішою) як кількість років. Результат: різниця між значеннями в полі "Дата_продажу" та датою "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" і "системною датою". Він буде підраховувати системну дату, якщо вона припадає на неділю; але це не рахує "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 можна використовувати з текстовим полем у формі, щоб відобразити кількість днів до крайнього терміну доставки замовлення.

Припускаючи, що доставка замовлення займає десять днів, потрібно задати властивість 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

Додаткові відомості

Вибір правильної функції дати

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.