Делите путем


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

Функције Односи се на
DateAdd
DateDiff
Апликације за платно Цопилот Студио Десктоп токови Колоне формуле Датаверсе Апликације засноване на моделу Повер Платформ ЦЛИ Датаверсе функције Повер Пагес
TimeZoneOffset Цанвас апликације Цопилот Студио Десктоп тече Апликације засноване на моделу Повер Платформ ЦЛИ Датаверсе функције Повер Пагес
Function Односи се на
DateAdd
DateDiff
TimeZoneOffset

Додаје или проналази разлику у вредностима датум/време и конвертује између локалног времена и UTC.

Опис

Функција DateAdd додаје број јединица вредности датума / времена. Резултат је нова вредност датум/време. Такође можете одузети број јединица од вредности датум/време тако што ћете навести негативну вредност.

Функција DateDiff враћа разлику између две вредности датума / времена. Резултат је цео број јединица.

За обе функције, јединице могу бити ТимеУнит.Миллисецондс, ТимеУнит.Сецондс , ТимеУнит.Минутес , ТимеУнит.Хоурс , ТимеУнит.Даис , ТимеУнит.Монтхс , ТимеУнит.Qуартерс или ТимеУнит.Yеарс . По дефаулту, обе функције користе ТимеУнит.Даис као јединице.

Функција TimeZoneOffset враћа број минута између локалног времена корисника и УТЦ (координирано универзално време).

Можете користити DateAdd са за претварање TimeZoneOffset између локалног времена корисника и УТЦ (координирано универзално време). Додавање TimeZoneOffset ће претворити локално време у УТЦ, и одузимање (додавање негативног) ће претворити из УТЦ у локално време.

Такође погледајте Датум , време и ДатумВреме типови података и рад са датумима и временима за више информација.

Синтакса

DateAdd( ДатеТиме , Додавање [, Јединице ] )

  • ДатеТиме - Обавезно. Вредност датум/време на којој се ради.
  • Додатак - Обавезно. Број, у Јединицима, за додавање у DateTime.
  • Јединице - Опционо. Тип јединица које треба додати: ТимеУнит.Миллисецондс , ТимеУнит.Сецондс , ТимеУнит.Минутес , ТимеУнит.Хоурс , ТимеУнит.Даис , ТимеУнит.Монтхс , ТимеУнит.Qуартерс или ТимеУнит.Yеарс. Ако није наведено, користе се ТимеУнит.Даис .

DateDiff( СтартДатеТиме , ЕндДатеТиме [, Јединице ] )

  • СтартДатеТиме - Обавезно. Покретање вредности датум/време.
  • ЕндДатеТиме - Обавезно. Завршавање вредности датум/време.
  • Јединице - Опционо. Тип јединица за одузимање: ТимеУнит.Миллисецондс , ТимеУнит.Сецондс , ТимеУнит.Минутес , ТимеУнит.Хоурс , ТимеУнит.Даис , ТимеУнит.Монтхс , ТимеУнит.Qуартерс , или ТимеУнит.Yеарс. Ако није наведено, користе се ТимеУнит.Даис .

TimeZoneOffset( [ ДатеТиме ] )

  • ДатеТиме - Опционо. Вредност датум/време за коју се враћа одступање. Подразумевано се користи тренутни датум/време.

Примери

У свим овим примерима претпоставите да су тренутни датум и време 15. јул 2013., 13:02.

Једноставно DateAdd

Формула Опис Резултат
Текст ( DateAdd( сада(), 3 ),
"dd-mm-гггг хх:мм" )
Додаје се три дана (подразумеване јединице) тренутном датуму и времену. „18. 7. 2013., 13:02“
Теxт ( DateAdd( Ноw(), 4, ТимеУнит.Хоурс ),
"dd-mm-гггг хх:мм" )
Додајте четири сата тренутном датуму и времену. „15. 7. 2013., 17:02“
Теxт ( DateAdd( Данас(), 1, ТимеУнит.Монтхс ),
"dd-mm-гггг хх:мм" )
Додаје се месец дана тренутном датуму, без времена као Данас не враћа временску компоненту. „15. 8. 2013., 00:00“
Теxт ( DateAdd( Сада(), -30, ТимеУнит.Минутес ),
"dd-mm-гггг хх:мм" )
Одузима 30 минута од тренутног датума и времена. „15. 7. 2013., 12:32“

Једноставно DateDiff

Формула Опис Резултат
DateDiff( Сада (), ДатеВалуе ("1/1/2014") ) Враћа разлику између две јединице у подразумеваним јединицама ТимеУнит.Даис 170
DateDiff( Сада (), ДатеВалуе ("1/1/2014"), ТимеУнит.Монтхс ) Враћа разлику између две вредности у ТимеУнит.Монтхс 6
DateDiff( Ноw(), Тодаy(), ТимеУнит.Минутес ) Враћа разлику само између тренутног датума/времена и тренутног датума (без времена) у минутама. Од када је Сада касније од Данас резултат ће бити негативан. -782

Разлика датума са делимичним резултатима

Функција DateDiff враћа само цео број јединица које се одузимају, а прецизност је дата у наведеној јединици. Да бисте израчунали разлику са већом прецизношћу, користите мању јединицу и конвертујте резултат на одговарајући начин, као у примерима у наставку.

Формула Опис Резултат
DateDiff( ТимеВалуе ("09:45:00"), ТимеВалуе ("10:15:36"), ТимеУнит.Хоурс ) Минути/секунде се занемарују, разлика се заснива на времену до сата. 1
DateDiff( ТимеВалуе ("09:45:00"), ТимеВалуе ("10:15:36"), ТимеУнит.Минутес )/60 Минути се користе у разлици, а резултат се дели са 60 да би се добила разлика у сатима. 0.5
DateDiff( ТимеВалуе ("09:45:00"), ТимеВалуе ("10:15:36"), ТимеУнит.Сецондс )/3600 Минути и секунде се користе у разлици, а резултат се дели са 3600 да би се добила разлика у сатима. 0.51

Ковертовање у UTC

Да бисте претворили у УТЦ (координирано универзално време), додајте за TimeZoneOffset задано време.

На пример, замислите да су тренутни датум и време 15. јул 2013., 13:02 у Пацифичко летње/зимско рачунање времена (PDT, UTC-7). Да бисте одредили тренутно време у UTC, користите:

  • DateAdd( Сада (), TimeZoneOffset(), ТимеУнит.Минутес )

TimeZoneOffset подразумевано је тренутно време, тако да не морате да му проследите аргумент.

Да бисте видели резултат, користите функцију Text са форматом dd-mm-yyyy hh:mm, који ће вратити 15. 7. 2013., 20:02.

Претварање из UTC

Да бисте конвертовали из УТЦ-а, одузмите ( TimeZoneOffset додавањем негативног) за задато време.

На пример, замислите UTC датум и време 15. јул 2013., 20:02 се чува у променљивој под називом StartTime. Да бисте подесили време за временску зону корисника, користите:

  • DateAdd( СтартТиме, − TimeZoneOffset( СтартТиме ), ТимеУнит.Минутес )

Обратите пажњу на негативан предзнак пре TimeZoneOffset да одузмете офсет, а не да га додате.

Да бисте видели резултат, користите функцију Text са форматом dd-mm-yyyy hh:mm, што ће резултирати у 15. 7. 2013., 13:02 ако сте у пацифичком летњем/зимском рачунању времена.