Нотатка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
| Функції | Застосовується до |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| 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, якщо ви знаходитеся в тихоокеанському часовому поясі (літо).