Функції DateAdd, DateDiff і TimeZoneOffset
Function | Застосовується до |
---|---|
DateAdd | Стовпці Dataverse формул програм на полотні Потоки робочого столу Програмні інтерфейси Power Platform командного рядка на основі моделі |
DateDiff (ДатаРізниця) | Стовпці Dataverse формул програм на полотні Потоки робочого столу Програмні інтерфейси Power Platform командного рядка на основі моделі |
Зсув часового поясу | Програми Canvas Потоки робочого столу Програми Power Platform на основі моделі CLI |
Додавання або пошук різниці в значеннях дати й часу та перетворення місцевого часу на час у форматі 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 – обов’язковий аргумент. Значення дати й часу для виконання дій.
- Addition – обов’язковий аргумент. Число в одиницях вимірювання (Units), яке потрібно додати до DateTime.
- Units – необов’язковий аргумент. Тип одиниць виміру , які потрібно додати: Одиниця часу.Мілісекунди,Одиниця часу.Секунди,Одиниця часу.Хвилини,Одиниця часу.Години,Одиниця часу.Дні,Одиниця часу.Місяці,Одиниця часу.Квартали абоОдиниця часу.Роки. Якщо не вказано, буде використано TimeUnit.Days .
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime – обов’язковий аргумент. Початкове значення дати й часу.
- EndDateTime – обов’язковий аргумент. Кінцеве значення дати й часу.
- Units – необов’язковий аргумент. Тип одиниць для віднімання: Одиниця часу.Мілісекунди,Одиниця часу.Секунди,Одиниця часу.Хвилини,Одиниця часу.Години,Одиниця часу.Дні,Одиниця часу.Місяці,Одиниця часу.Квартали абоОдиниця часу.Роки. Якщо не вказано, буде використано 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.Month ), "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("1/1/2014") ) | Повертає різницю між двома модулями у типових одиницях TimeUnit.Days | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Month ) | Повертає різницю між двома значеннями у 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, якщо ви знаходитеся в тихоокеанському часовому поясі (літо).
Зворотний зв’язок
https://aka.ms/ContentUserFeedback.
Очікується незабаром: протягом 2024 року ми будемо припиняти використання механізму реєстрації проблем у GitHub для зворотного зв’язку щодо вмісту й замінювати його новою системою зворотного зв’язку. Докладніше:Надіслати й переглянути відгук про