ДатеАдд, ДатеДифф и ТимеЗонеОффсет функције
Function | Односи се на |
---|---|
ДатумОда | |
ДатумДифа | |
ТимеЗонеОффсет |
Додаје или проналази разлику у вредностима датум/време и конвертује између локалног времена и UTC.
Опис
Функција DateAdd додаје број јединица у вредност датум/време. Резултат је нова вредност датум/време. Такође можете одузети број јединица од вредности датум/време тако што ћете навести негативну вредност.
Функција DateDiff враћа разлику између две вредности датум/време. Резултат је цео број јединица.
За обе функције јединице могу бити ТимеУнит.Миллисецондс,ТимеУнит.Сецондс,ТимеУнит.Минутес,ТимеУнит.Хоурс,ТимеУнит.Даyс,ТимеУнит.Монтхс,ТимеУнит.Qуартерс или ТимеУнит.Yеарс. Обе функције подразумевано користе ТимеУнит.Даyс као јединице.
Функција TimeZoneOffset враћа број минута између локалног времена корисника и UTC (Coordinated Universal Time).
Можете користити DateAdd са TimeZoneOffset да бисте конвертовали између локалног времена корисника и UTC (Coordinated Universal Time). Додавање TimeZoneOffset претвориће локално време у UTC, а одузимање (додавање негативног) претвориће из UTC у локално време.
Такође погледајте типове података "Датум", "Време" и "Време извршавања " и рад са датумима и временом за више информација.
Синтакса
DateAdd( DateTime, Addition [, Units ] )
- DateTime – Обавезно. Вредност датум/време на којој се ради.
- Addition – Обавезно. Број, у Јединицима, за додавање у DateTime.
- Units – Обавезно. Тип јединица за додавање:ТимеУнит.Миллисецондс,ТимеУнит.Сецондс,ТимеУнит.Минутес,ТимеУнит.Хоурс,ТимеУнит.Даyс,ТимеУнит.Монтхс,ТимеУнит.Qуартерс или ТимеУнит.Yеарс. Ако није наведено, користе се "ВремеУнит.Дани ".
DateDiff( StartDateTime, EndDateTime [, Јединице ] )
- StartDateTime – Обавезно. Покретање вредности датум/време.
- EndDateTime – Обавезно. Завршавање вредности датум/време.
- Units – Обавезно. Тип јединица за одузимање: ТимеУнит.Миллисецондс,ТимеУнит.Сецондс,ТимеУнит.Минутес,ТимеУнит.Хоурс,ТимеУнит.Даyс,ТимеУнит.Монтхс,ТимеУнит.Qуартерс или ТимеУнит.Yеарс. Ако није наведено, користе се "ВремеУнит.Дани ".
TimeZoneOffset( [ DateTime ] )
- DateTime – Обавезно. Вредност датум/време за коју се враћа одступање. Подразумевано се користи тренутни датум/време.
Примери
У свим овим примерима претпоставите да су тренутни датум и време 15. јул 2013., 13:02.
Једноставно DateAdd
Формула | Опис | Резултат |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Додаје се три дана (подразумеване јединице) тренутном датуму и времену. | „18. 7. 2013., 13:02“ |
Теxт ( ДатеАдд( Ноw(), 4, ТимеУнит.Хоурс ), "dd-mm-yyyy hh:mm" ) |
Додајте четири сата тренутном датуму и времену. | „15. 7. 2013., 17:02“ |
Текст ( ДатеАдд( Данас(), 1, ВремеУнит.Монтхс ), "dd-mm-yyyy hh:mm" ) |
Додаје се месец дана тренутном датуму, без времена као Данас не враћа временску компоненту. | „15. 8. 2013., 00:00“ |
Теxт ( ДатеАдд( Ноw(), -30, ТимеУнит.Минутес ), "dd-mm-yyyy hh:mm" ) |
Одузима 30 минута од тренутног датума и времена. | „15. 7. 2013., 12:32“ |
Једноставно DateDiff
Формула | Опис | Резултат |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014") ) | Даје разлику између две јединице у подразумеваним јединицама јединице јединице "ВремеУнит.Даyс ". | 170 |
ДатеДифф ( Ноw(), ДатеВалуе("1/1/2014"), ТимеУнит.Монтхс ) | Даје разлику између две вредности у програму ТимеУнит.Монтхс. | 6 |
ДатеДифф ( Ноw(), Тодаy(), ТимеУнит.Минутес ) | Враћа разлику само између тренутног датума/времена и тренутног датума (без времена) у минутама. Од када је Сада касније од Данас резултат ће бити негативан. | -782 |
Разлика датума са делимичним резултатима
Функција DateDiff враћа само цео број јединица које се одузимају, а прецизност је дата у наведеној јединици. Да бисте израчунали разлику са већом прецизношћу, користите мању јединицу и конвертујте резултат на одговарајући начин, као у примерима у наставку.
Формула | Опис | Резултат |
---|---|---|
ДатеДифф ("ТимеВалуе("09 :45:00 "), ТимеВалуе("10:15:36"), ТимеУнит.) | Минути/секунде се занемарују, разлика се заснива на времену до сата. | 1 |
ДатеДифф ( ТимеВалуе("09:45:00"), ТимеВалуе("10:15:36"), ТимеУнит.Минутес )/60 | Минути се користе у разлици, а резултат се дели са 60 да би се добила разлика у сатима. | 0.5 |
ДатеДифф ("ТимеВалуе("09 :45:00 "), ТимеВалуе("10:15:36"), ТимеУнит.Сецондс )/3600 | Минути и секунде се користе у разлици, а резултат се дели са 3600 да би се добила разлика у сатима. | 0.51 |
Ковертовање у UTC
Да бисте конвертовали у UTC (Координисано универзално време), додаје TimeZoneOffset за дато време.
На пример, замислите да су тренутни датум и време 15. јул 2013., 13:02 у Пацифичко летње/зимско рачунање времена (PDT, UTC-7). Да бисте одредили тренутно време у UTC, користите:
- ДатеАдд ( Ноw(), ТимеЗонеОффсет(), ТимеУнит.Минутес )
TimeZoneOffset се подразумева на тренутно време, тако да не требате да уносите аргумент у њу.
Да бисте видели резултат, користите функцију Text са форматом dd-mm-yyyy hh:mm, који ће вратити 15. 7. 2013., 20:02.
Претварање из UTC
Да бисте конвертовали из UTC, одузмите TimeZoneOffset (додавањем негативног) за дато време.
На пример, замислите UTC датум и време 15. јул 2013., 20:02 се чува у променљивој под називом StartTime. Да бисте подесили време за временску зону корисника, користите:
- ДатеАдд ( Време почетка,ВремеЗонеОффсет −( Време почетка ), ВремеУнит.Минутес )
Имајте на уму негативни знак пре TimeZoneOffset да бисте одузели одступање, а не додали га.
Да бисте видели резултат, користите функцију Text са форматом dd-mm-yyyy hh:mm, што ће резултирати у 15. 7. 2013., 13:02 ако сте у пацифичком летњем/зимском рачунању времена.