Бөлісу құралы:


DateAdd, DateDiff және TimeZoneOffset функциялары

Қолданылады: Canvas apps Dataverse формула бағандары Жұмыс үстелі ағындары CLI моделі басқарылатын бағдарламалар Power Platform

Күн/уақыт мәндеріндегі айырмашылықты қосады немесе табады және жергілікті уақыт пен UTC арасында түрлендіреді.

Сипаттама

DateAdd функциясы күн/уақыт мәніне бірліктер санын қосады. Нәтиже — жаңа күн/уақыт мәні. Сондай-ақ теріс мәнді көрсету арқылы күн/уақыт мәнінен бірліктер санын шегеруге болады.

DateDiff функциясы екі күн/уақыт мәні арасындағы айырмашылықты қайтарады. Нәтижесінде бірліктердің жалпы саны шығады.

Екі функция үшін бірліктер TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters немесеTimeUnit.Years болуымүмкін. Әдепкі бойынша, екі функция да TimeUnit.Days-ты бірліктер ретінде пайдаланады .

TimeZoneOffset функциясы пайдаланушының жергілікті уақыты мен UTC (реттелген әмбебап уақыт) арасындағы минуттар санын қайтарады.

Пайдаланушының жергілікті уақыты мен UTC (реттелген әмбебап уақыт) арасында түрлендіру үшін DateAdd функциясын TimeZoneOffset функциясымен бірге пайдалануға болады. TimeZoneOffset фукнциясын қосу жергілікті уақытты UTC уақытына түрлендіреді, ал оны шегеру (теріс мәнді қосу) UTC уақытынан жергілікті уақытқа түрлендіреді.

Сондай-ақ, Қосымша ақпарат алу үшін Күн, уақыт және Күн Уақыты деректер түрлері және күндермен және уақытпен жұмыс істеу бөлімін қараңыз .

Синтаксис

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - Міндетті. Әрекет орындалатын күн/уақыт мәні.
  • Addition - Міндетті. Бірліктер ішіндегі DateTime мәніне қосатын сан.
  • Units - Міндетті емес. Қосуға болатын бірліктер түрі:TimeUnit.Milliseconds,TimeUnit.Seconds.TimeUnit.Minutes.Minutes.Hours,TimeUnit.Days,TimeUnit.Айлар,TimeUnit.Quarters немесе TimeUnit.Years. Көрсетілмесе, TimeUnit.Days пайдаланылады.

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - Міндетті. Басталу күні/уақыты мәні.
  • EndDateTime - Міндетті. Аяқталу күні/уақыты мәні.
  • Units - Міндетті емес. Алу үшін Бірліктер түрі:TimeUnit.Milliseconds,TimeUnit.Seconds.TimeUnit.Minutes.Minutes.Hours,TimeUnit.Days,TimeUnit.Айлар,TimeUnit.Quarters немесеTimeUnit.Years. Көрсетілмесе, TimeUnit.Days пайдаланылады.

TimeZoneOffset( [ DateTime ] )

  • DateTime - Міндетті емес. Ауытқу мәні қайтарылатын күн/уақыт мәні. Әдепкі бойынша, ағымдағы күн/уақыт пайдаланылады.

Мысалдар

Осы мысалдардың барлығында ағымдағы күн мен уақыт 15 маусым, 2013, 13:02 деп есептеледі.

Қарапайым DateAdd

Формула Сипаттама Нәтиже
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Ағымдағы күн мен уақытқа үш күнді (әдепкі бірліктер) қосады. "18-07-2013 13:02"
Мәтін( DateAdd( Now(), 4, TimeUnit.Hours),
"dd-mm-yyyy hh:mm" )
Ағымдағы күн мен уақытқа төрт сағат қосады. "15-07-2013 17:02"
Мәтін( DateAdd( Today(), 1, TimeUnit.Months),
"dd-mm-yyyy hh:mm" )
Ағымдағы күнге бір ай қосады, Бүгін түріндегі уақытсыз уақыт құрамдасын қайтармайды. "15-08-2013 00:00"
Мәтін( DateAdd( Қазір(), -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 мәнін қосыңыз.

Мысалы, ағымдағы күн мен уақыт Тынық мұхиттың жазғы уақытта (PDT, UTC-7) 15 шілде, 2013, 13:02 деп елестетіңіз. UTC уақытындағы ағымдағы уақытты анықтау үшін мынаны пайдаланыңыз:

  • DateAdd( Қазір(), TimeZoneOffset(), TimeUnit.Minutes)

TimeZoneOffset әдепкі мәні ағымдағы уақыт болады, осылайша оны аргумент ретінде өткізу қажет болмайды.

Нәтижені көру үшін Text функциясын dd-mm-yyyy hh:mm пішімінде пайдаланыңыз, бұл 15-07-2013 20:02 мәнін қайтарады.

UTC уақытына түрлендіру

UTC уақытынан түрлендіру үшін берілген уақыт үшін TimeZoneOffset шегеріңіз (теріс мәнді қосу арқылы).

Мысалы, 15 шілде, 2013, 20:02 UTC күні мен уақыты StartTime деп аталатын айнымалыда сақталатынын елестетіңіз. Уақытты пайдаланушының уақыт белдеуіне реттеу үшін мынаны пайдаланыңыз:

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

TimeZoneOffset алдындағы теріс таңбаға назар аударыңыз (ол ауытқуды қосуға емес, шегеруге арналған).

Нәтижені көру үшін Text функциясын dd-mm-yyyy hh:mm пішімінде пайдаланыңыз, Тынық мұхиттық жазғы уақытта болсаңыз, бұл 15-07-2013 13:02 мәніне әкеледі.