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


DateAdd, DateDiffи TimeZoneOffset функции

Функции Приложимо за
DateAdd
DateDiff
Приложения за платно Copilot Studio Работен плот потоци Dataverse формули колони Модел-задвижвани приложения Power Platform CLI Dataverse функции Power Pages
TimeZoneOffset Приложения за платно Copilot Studio Работен плот потоци Модел-управлявани приложения Power Platform CLI Dataverse функции Power Pages
Function Приложимо за
DateAdd
DateDiff
TimeZoneOffset

Добавя или намира разликата в стойностите за дата / час и конвертира между местно време и 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, Събиране [, Единици ] )

  • DateTime - Задължително. Стойност на дата/час за работа.
  • Допълнение - Задължително. Число в Единици, за да добавите към DateTime.
  • Единици - По избор. Типът единици за добавяне: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters или TimeUnit.Years. Ако не е посочено, се използват TimeUnit.Days .

DateDiff( StartDateTime, EndDateTime [, Единици ] )

  • StartDateTime - Задължително. Стойност на начална дата/час.
  • EndDateTime - Задължително. Стойност на крайна дата/час.
  • Единици - По избор. Типът единици за изваждане: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters или TimeUnit.Years. Ако не е посочено, се използват TimeUnit.Days .

TimeZoneOffset( [ Дата и час ] )

  • DateTime - По избор. Стойност на дата / час, за която да се върне компенсирането. По подразбиране се използва текущата дата / час.

Примери

Във всички тези примери приемете, че текущата дата и час са July 15, 2013, 1:02 PM.

Прост 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" )
Добавя един месец към текущата дата, без време като днес не връща компонент във времето. "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.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, използвайте:

  • DateAdd( Сега(), TimeZoneOffset(), TimeUnit.Minutes )

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

За да видите резултата, използвайте Text функция с формата dd-mm-yyyy hh:mm, която ще се върне 15-07-2013 20:02.

Преобразуване от UTC

За да преобразувате от UTC, извадете TimeZoneOffset (като добавите отрицателните) за дадения период от време.

Например, представете си дата и час на UTC July 15, 2013, 8:02 PM се съхранява в променлива с име StartTime. За да настроите времето за часовата зона на потребителя, използвайте:

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

Обърнете внимание на отрицателния знак преди TimeZoneOffset да извадите изместването, вместо да го добавите.

За да видите резултата, използвайте функцията Text с формата dd-mm-yyyy hh:mm, което ще доведе до 15-07-2013 13:02, ако сте в тихоокеанския светъл ден.