Функции DateAdd, DateDiff и TimeZoneOffset
Function | Приложимо за |
---|---|
Добавяне на дата | Приложения за платно Dataverse Колони за формули Потоци на работния плот Приложения, Power Platform управлявани от модел CLI |
ДатаДиф | Приложения за платно Dataverse Колони за формули Потоци на работния плот Приложения, Power Platform управлявани от модел CLI |
Изместване на часовата зона | Приложения за платно Потоци на работния плот Приложения, Power Platform управлявани от модели CLI |
Добавя или намира разликата в стойностите за дата / час и конвертира между местно време и UTC.
Описание
Функцията DateAdd добавя няколко единици към дата / време. Резултатът е нова стойност на дата / час. Можете също да извадите редица единици от стойност дата / час, като посочите отрицателна стойност.
Функцията DateDiff връща разликата между две стойности за дата / време. Резултатът е цял брой единици.
И за двете функции единиците могат да бъдат TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters, или TimeUnit.Years. По подразбиране и двете функции използват TimeUnit.Days като единици.
Функцията TimeZoneOffset функция връща броя минути между местното време на потребителя и UTC (универсално координирано време).
Можете да използвате DateAdd с TimeZoneOffset, за да конвертирате между местното време на потребителя и UTC (универсално координирано време). Добавяне на TimeZoneOffset ще преобразува местно време в UTC, а изваждането (добавяне на отрицателното) ще преобразува от UTC в местно време.
Вижте също типовете данни Дата, час и ДатаЧас и работата с дати и часове за повече информация.
Синтаксис
DateAdd( DateTime, Addition [, Units ] )
- DateTime - Задължително. Стойност на дата/час за работа.
- Addition - Задължително. Число в Единици, за да добавите към DateTime.
- Units - Опционално. Типът на единиците за добавяне: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarterly или TimeUnit.Years. Ако не е посочено,TimeUnit.Days се използват.
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime - Задължително. Стойност на начална дата/час.
- EndDateTime - Задължително. Стойност на крайна дата/час.
- Units - Опционално. Типът единици за изваждане: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters или TimeUnit.Years. Ако не е посочено,TimeUnit.Days се използват.
TimeZoneOffset( [ DateTime ] )
- DateTime - Опционално. Стойност на дата / час, за която да се върне компенсирането. По подразбиране се използва текущата дата / час.
Примери
Във всички тези примери приемете, че текущата дата и час са July 15, 2013, 1:02 PM.
Обикновен DateAdd
Формула | Описание | Резултат |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Добавя три дни (по подразбиране единици) към текущата дата и час. | "18-07-2013 13:02" |
Текст( ДатаДобавяне( Сега(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Добавете четири часа към текущата дата и час. | "15-07-2013 17:02" |
Текст( ДатаДобавяне( Днес(), 1, ВремеЕдиница.Месеци ), "dd-mm-yyyy hh:mm" ) |
Добавя един месец към текущата дата, без време като днес не връща компонент във времето. | "15-08-2013 00:00" |
Текст( ДатаДобавяне( Сега(), -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.Months ) | Връща разликата между двете стойности в TimeUnit.Months | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Връща разликата между текущата дата / час и текущата дата (без време) в минути. Тъй като Сега е по-късно от днес резултатът ще бъде отрицателен. | -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 за даденото време.
Например, представете си каква е текущата дата и час July 15, 2013, 1:02 PM в тихоокеанското лятно време (PDT, UTC-7). За да определите текущото време в UTC, използвайте:
- ДатаДобавяне( Сега(), Отместване на часовата зона(), ВремеЕдиница.Минути )
TimeZoneOffset по подразбиране към текущото време, така че не е необходимо да го предавате като аргумент.
За да видите резултата, използвайте Text функция с формата dd-mm-yyyy hh:mm, която ще се върне 15-07-2013 20:02.
Преобразуване от UTC
За да конвертирате от UTC, извадете TimeZoneOffset (чрез добавяне на отрицателното) за даденото време.
Например, представете си дата и час на UTC July 15, 2013, 8:02 PM се съхранява в променлива с име StartTime. За да настроите времето за часовата зона на потребителя, използвайте:
- ДатаДобавяне( Начален час,Отместване − на часовата зона( Начален час ), Времева единица.Минути )
Забележете отрицателния знак преди TimeZoneOffset, за да извадим отместването, а не да го добавим.
За да видите резултата, използвайте функцията Text с формата dd-mm-yyyy hh:mm, което ще доведе до 15-07-2013 13:02, ако сте в тихоокеанския светъл ден.