Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
| Функции | Приложимо за |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| 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, ако сте в тихоокеанския светъл ден.