Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Functions | Dotyczy |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| Function | Dotyczy |
|---|---|
| DateAdd | |
| DateDiff | |
| TimeZoneOffset |
Funkcje te służą do dodawania różnicy do wartości daty/godziny, odnajdywania takiej różnicy i wykonywania konwersji między czasem lokalnym i czasem UTC.
Opis
Funkcja DateAdd dodaje liczbę jednostek do wartości daty/godziny. Wynik to nowa wartość daty/godziny. Możliwe jest również odjęcie liczby jednostek od wartości daty/godziny, określając wartość ujemną.
Funkcja DateDiff zwraca różnicę między dwiema wartościami daty/godziny. Wynik to liczba całkowita jednostek.
W przypadku obu funkcji jednostkami mogą być TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters lub TimeUnit.Years. Domyślna jednostka używana przez obie funkcje to TimeUnit.Days jako jednostki.
Funkcja TimeZoneOffset zwraca liczbę minut między czasem lokalnym użytkownika a UTC (uniwersalny czas koordynowany).
Możesz użyć polecenia DateAdd z elementem TimeZoneOffset , aby przekonwertować między czasem lokalnym użytkownika a czasem UTC (uniwersalny czas koordynowany). Dodanie TimeZoneOffset spowoduje przekonwertowanie czasu lokalnego na czas UTC i odjęcie go (dodanie wartości ujemnej) spowoduje przekonwertowanie czasu UTC na czas lokalny.
Zobacz też Typy danych Date, Time i DateTime oraz Praca z datami i godzinami, aby uzyskać więcej informacji.
Składnia
DateAdd( DateTime, Dodawanie [, Jednostki ] )
- Data/godzina - wymagane. Wartość daty/godziny używana w ramach operacji.
- Dodatek - wymagany. Liczba Jednostek do dodania do wartości DateTime.
- Jednostki - Opcjonalnie. Typ Jednostki do dodania: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters lub TimeUnit.Years. Jeśli typ nie zostanie określony, jako jednostka używana jest wartość TimeUnit.Days.
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime - wymagane. Początkowa wartość daty/godziny.
- EndDateTime - wymagane. Końcowa wartość daty/godziny.
- Jednostki - Opcjonalnie. Typ Jednostki do odjęcia: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters lub TimeUnit.Years. Jeśli typ nie zostanie określony, jako jednostka używana jest wartość TimeUnit.Days.
TimeZoneOffset( [ DateTime ] )
- Data/godzina - Opcjonalne. Wartość daty/godziny, dla której ma zostać zwrócone przesunięcie. Domyślnie używana jest bieżąca wartość daty/godziny.
Przykłady
We wszystkich poniższych przykładach założono, że bieżąca data i godzina to 15 lipca 2013 r., 13:02:00.
Prosty DateAdd
| Wzór | Opis | Wynik |
|---|---|---|
|
Text( ( DateAddNow(), 3 ), "dd-mm-yyyy hh:mm" ) |
Dodaje trzy dni (jednostki domyślne) do bieżącej daty i godziny. | "18-07-2013 13:02" |
|
Text( ( DateAddNow(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Dodaj cztery godziny do bieżącej daty i godziny. | "15-07-2013 17:02" |
|
Text( ( DateAddToday(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Dodaje miesiąc do bieżącej daty bez godziny, ponieważ funkcja Today nie zwraca składnika godziny. | "15-08-2013 00:00" |
|
Text( ( DateAddNow(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Odejmuje 30 minut od bieżącej daty i godziny. | "15-07-2013 12:32" |
Prosty DateDiff
| Wzór | Opis | Wynik |
|---|---|---|
| DateDiff( Now(), DateValue("1/1/2014") ) | Zwraca różnicę między dwiema jednostkami w domyślnych jednostkach – TimeUnit.Days | 170 |
| DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Zwraca różnicę między dwiema wartościami w jednostkach TimeUnit.Months | 6 |
| DateDiff( Now(), Today(), TimeUnit.Minutes ) | Zwraca różnicę między bieżącą datą/godziną i bieżącą datą (bez godziny) w minutach. Ponieważ wartość zwracana przez funkcję Now jest późniejsza niż wartość zwracana przez funkcję Today, wynik będzie ujemny. | -782 |
Różnica dat z wynikami ułamkowymi
Funkcja DateDiff zwraca tylko liczbę całkowitą odjętą jednostek, a precyzja jest podana w określonej jednostce. Aby obliczyć różnicę z większą precyzją, należy użyć mniejszej jednostki i odpowiednio przekonwertować wynik, jak w poniższych przykładach.
| Wzór | Opis | Wynik |
|---|---|---|
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minuty/sekundy są ignorowane, a różnica jest oparta na czasie zaokrąglonym w górę do godziny. | 1 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Minuty są używane w różnicy, a wynik jest dzielony przez 60, aby uzyskać różnicę w godzinach. | 0.5 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Minuty i sekundy są używane w różnicy, a wynik jest dzielony przez 3600, aby uzyskać różnicę w godzinach. | 0.51 |
Wykonywanie konwersji na czas UTC
Aby przekonwertować na utc (uniwersalny czas koordynowany), dodaj wartość TimeZoneOffset dla danego czasu.
Na potrzeby przykładu załóżmy, że aktualna data i godzina to 15 lipca 2013 r., 13:02:00 czasu pacyficznego (PDT, UTC-7). Aby określić bieżącą godzinę w formacie UTC, użyj następującej funkcji:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset wartość domyślna bieżącej godziny, więc nie trzeba przekazywać jej argumentu.
Aby wyświetlić wynik, użyj funkcji Text w formacie dd-mm-yyyy hh:mm, co spowoduje zwrócenie wartości 15-07-2013 20:02.
Wykonywanie konwersji z czasu UTC
Aby przekonwertować z czasu UTC, odejmij TimeZoneOffset wartość (dodając wartość ujemną) dla danego czasu.
Na potrzeby przykładu załóżmy, że data i godzina w formacie UTC, 15 lipca 2013 r., 20:02:00, jest przechowywana w zmiennej o nazwie GodzinaPoczatkowa. Aby dostosować godzinę dla strefy czasowej użytkownika, wywołaj funkcję w następujący sposób:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Zanotuj znak ujemny przed TimeZoneOffset odjęciem przesunięcia, a nie dodaj go.
Aby wyświetlić wynik, użyj funkcji Text w formacie dd-mm-yyyy hh:mm, co spowoduje zwrócenie wartości 15-07-2013 13:02 czasu pacyficznego.