Поділитися через


DateAdd, DateDiffі TimeZoneOffset функції

Функції Застосовується до
DateAdd
DateDiff
Canvas apps Copilot Studio Desktop flows Dataverse formula columns Model-driven apps Power Platform CLI Dataverse functions Power Pages
TimeZoneOffset Програми Canvas Copilot Studio Desktop flows Model-driven apps Power Platform CLI Dataverse functions Power Pages
Function Застосовується до
DateAdd
DateDiff
TimeZoneOffset

Додавання або пошук різниці в значеннях дати й часу та перетворення місцевого часу на час у форматі UTC (і навпаки).

Опис

Функція DateAdd додає кількість одиниць до значення дати й часу. Результатом є нове значення дати та часу. Також можна відняти певну кількість одиниць вимірювання від значення дати й часу, указавши від’ємне значення.

Функція DateDiff повертає різницю між двома значеннями дати й часу. Результатом буде ціла кількість одиниць вимірювання.

Для обох функцій одиницями виміру можуть бути TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Month,TimeUnit.Quarters або TimeUnit.Years. За замовчуванням обидві функції використовують TimeUnit.Days як одиниці.

Функція TimeZoneOffset повертає кількість хвилин між місцевим часом користувача та UTC (всесвітній координований час).

Ви можете використовувати DateAdd з перетворенням TimeZoneOffset між місцевим часом користувача та UTC (всесвітній координований час). Додавання TimeZoneOffset перетворить місцевий час на UTC, а віднімання (додавання від'ємного значення) перетвориться з UTC на місцевий час.

Також перегляньте розділи Типи даних «Дата», «Час» і «ДатаЧас», а також робота з датами й часом для отримання додаткової інформації.

Синтаксис

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - обов’язковий. Значення дати й часу для виконання дій.
  • Додавання - обов’язкове. Число в одиницях вимірювання (Units), яке потрібно додати до DateTime.
  • Одиниці виміру- необов’язкові. Тип одиниць для додавання: Одиниця часу.Мілісекунди, Одиниця часу.Секунди, Одиниця часу.Хвилини, Одиниця часу.Години.Години.Дні, Одиниця часу.Місяці , Одиниця часу.Квартали або Одиниця часу.Роки. Якщо не вказано, використовується TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - обов’язковий. Початкове значення дати й часу.
  • EndDateTime - Обов’язковий. Кінцеве значення дати й часу.
  • Одиниці виміру- необов’язкові. Тип одиниць для віднімання: Одиниця часу.Мілісекунди , Одиниця часу.Секунди, Одиниця часу.Хвилини, Одиниця часу.Години, Одиниця часу.Дні, Одиниця часу.Місяці, Одиниця часу.Чверті абоОдиниця часу.Роки . Якщо не вказано, використовується TimeUnit.Days .

TimeZoneOffset( [ DateTime ] )

  • DateTime - необов’язковий. Значення дати та часу, для якого потрібно повернути різницю в часі. За замовчуванням використовуються поточні дата й час.

Приклади

В усіх цих прикладах припускається, що поточними датою й часом є 15 липня 2013 р., 13:02.

Простий DateAdd

Формула Опис Результат
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Додає три дні (одиниці вимірювання за замовчуванням) до поточних дати й часу. "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Додає чотири години до поточних дати й часу. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Додає один місяць до поточної дати без часу, оскільки функція Today не повертає компонент часу. "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Віднімає 30 хвилин від поточних дати й часу. "15-07-2013 12:32"

Простий DateDiff

Формула Опис Результат
DateDiff( Now(), DateValue("01.01.2014") ) Повертає різницю між двома одиницями у стандартних одиницях TimeUnit.Days 170
DateDiff( Now(), DateValue("01.01.2014"), TimeUnit.Months ) Повертає різницю між двома значеннями в TimeUnit.Month 6
DateDiff( Now(), Today(), TimeUnit.minutes ) Повертає різницю між поточними датою й часом та лише поточною датою (без часу) у хвилинах. Оскільки функція Now дає значення, що настає пізніше, ніж значення, яке повертає функція Today, результат буде від’ємним. -782

Різниця дат із дрібними результатами

Функція DateDiff повертає лише цілу кількість одиниць, які віднімаються, і точність надається у вказаній одиниці. Щоб обчислювати різницю з більшою точністю, використовуйте меншу одиницю вимірювання та відповідним чином перетворюйте результат, як у прикладах нижче.

Формула Опис Результат
DateDiff(TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Хвилини/секунди відкидаються, різниця обчислюється у часі з точністю до годин. 1
DateDiff(TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 У різниці використовуються хвилини, а результат ділиться на 60, щоб отримати різницю в годинах. 0.5
DateDiff(TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 У різниці використовуються хвилини та секунди, а результат ділиться на 3600, щоб отримати різницю в годинах. 0.51

Перетворення часу на час у форматі UTC

Щоб перетворити на UTC (всесвітній координований час), додайте TimeZoneOffset цей час.

Уявіть, наприклад, що поточними датою і часом є 15 липня 2013 р., 13:02 за тихоокеанським часом (літо) (PDT, UTC-7). Для визначення поточного часу у форматі UTC необхідно скористатися нижченаведеною формулою.

  • DateAdd(Now(), TimeZoneOffset(), TimeUnit.minutes )

TimeZoneOffset за замовчуванням до поточного часу, тому не потрібно передавати його аргументу.

Щоб переглянути результат, скористайтеся функцією Text із форматом dd-mm-yyyy hh:mm, яка поверне 15-07-2013 20:02.

Перетворення часу у форматі UTC на інший час

Щоб перетворити формат UTC, відніміть віднімання TimeZoneOffset (додавши від'ємне значення) за вказаний час.

Наприклад, уявіть, що поточні дата й час у форматі UTC – 15 липня 2013 р., 20:02 – зберігаються в змінній з іменем StartTime. Щоб настроїти час для часового поясу користувача, використайте вказану нижче формулу.

  • DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Зверніть увагу на знак від'ємного значення перед TimeZoneOffset відніманням зсуву, а не додаванням.

Щоб переглянути результат, скористайтеся функцією Text із форматом dd-mm-yyyy hh:mm, яка поверне 15-07-2013 13:02, якщо ви знаходитеся в тихоокеанському часовому поясі (літо).