Споделяне чрез


Функции 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, ако сте в тихоокеанския светъл ден.