Typ danych rozszerzonej daty/godziny przechowuje informacje o dacie i godzinie i jest podobny do typu danych data/godzina, ale oferuje większy zakres daty, większą precyzję ułamkową, a także zgodność z typem danych datetime2 programu SQL Server. Po zaimportowaniu lub połączeniu danych programu Access z programem SQL Server możesz regularnie mapować pole Rozszerzona data/godzina w programie Access do kolumny typu danych datetime2 programu SQL Server. Aby uzyskać więcej informacji, zobacz datetime2 (Transact-SQL).
Ostrzeżenie W przypadku tworzenia wyrażeń i używania funkcji daty/godziny na podstawie typu danych rozszerzonej daty/godziny w programie Access, możesz utracić precyzję obliczeń lub możesz napotkać inne problemy dotyczącymi uzyskiwanych wyników. Wiemy o tym problemie i planujemy zapewnić lepsze wsparcie dla wyrażeń i funkcji w najbliższej wersji. Aby obejść ten problem, możesz utworzyć zapytanie przekazujące w celu użycia równoważnego wyrażenia programu SQL Server oraz funkcji daty/godziny. Aby uzyskać więcej informacji, zobacz Porównanie języka SQL programu Access z językiem TSQL programu SQL Server.
W tym artykule
Porównywanie typów danych daty/godziny oraz rozszerzonej daty/godziny |
Używanie typu danych rozszerzonej daty/godziny jako ciągu znaków w VBA |
Porównywanie typów danych daty/godziny oraz rozszerzonej daty/godziny
W poniższej tabeli zestawiono istotne różnice między tymi dwoma typami danych.
Atrybut |
Data/godzina |
Rozszerzona data i godzina |
---|---|---|
Wartość minimalna |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Wartość maksymalna |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
Dokładność |
0,001 sekundy |
1 nanosekunda |
Rozmiar |
Wartość zmiennoprzecinkowa o podwójnej precyzji |
Zakodowany ciąg o długości równej 42 bajty |
Używanie typu danych rozszerzonej daty/godziny
Poniższe informacje opisują istotne zagadnienia dotyczące użycia.
Widok Projekt tabeli Aby uzyskać korzyść ze stosowania większego zakresu danych oraz większej precyzji, możesz dodać odpowiednie pole do tabeli programu Access. Możesz również przekonwertować typ danych data/godzina na typ danych rozszerzonej daty/godziny w widoku Projekt tabeli. Używanie tego typu danych jako pola klucza podstawowego jest także obsługiwane. Aby uzyskać więcej informacji, zobacz Tworzenie tabeli i dodawanie pól.
Wprowadzanie daty i godziny Wprowadzanie wartości daty i godziny jest podobne do wprowadzania typu danych data/godzina, z wyjątkiem tego, że możesz również wprowadzić ułamki nanosekundy. Na przykład:
-
Format wpisu: mm/dd/rrrr gg:mm:ss.nnnnnnn
-
Przykład: 06/15/1215 09:25:3.234
Jeśli istnieje więcej niż 7 ułamków nanosekundy, są one zaokrąglone do postaci siedmiocyfrowej. Aby kontrolować wyświetlanie ułamków nanosekundy, otwórz pozycję Tabela na wstążce, wybierz pozycję Pola, a następnie w grupie Formatowanie zaznacz pole wyboru Zwiększ liczbę miejsc po przecinku lub Zmniejsz liczbę miejsc po przecinku .
Formatowanie Oba typy danych, data/godzina oraz rozszerzona data/godzina, używają identycznych ciągów standardowego formatowania Daty ogólnej, Daty długiej, Daty średniej, Daty krótkiej, Godziny długiej, Godziny średniej oraz Godziny krótkiej i oba te typy obsługują formatowania niestandardowe. W przypadku rozszerzonego typu danych daty/godziny standardowe formaty oparte na czasie również obsługują precyzję ułamkową dla nanosekund. Formatowanie typu danych rozszerzonej daty/godziny to domyślne formaty Daty ogólnej oraz Godziny długiej, a także formatowanie to jest zgodne z opcjami wymienionymi w obszarze Ustawienia regionalne systemu Windows. Możesz również kontrolować formatowanie precyzji ułamkowej przy użyciu właściwości Miejsca dziesiętne w celu określenia liczby cyfr po prawej stronie separatora dziesiętnego (1-7).
Połączenia i importowanie Można również tworzyć połączenia z bazami danych zawierającymi odpowiedni typ danych, na przykład typ danych datetime2 programu SQL Server, oraz importować dane z takich baz. Obsługiwane są bazy danych programu SQL Server w wersji 2014 lub nowszej. Typ danych rozszerzonej datay/godziny wymaga użycia sterownika ODBC firmy Microsoft dla programu SQL Server 11 lub nowszego. Zalecamy używanie sterownika ODBC 13.1 firmy Microsoft dla programu SQL Server. Obsługiwane jest również korzystanie z bazy danych OLE. Aby uzyskać więcej informacji, zobacz Obsługa typu danych w celu ulepszenia daty i godziny ODBC i Używanie funkcji rozszerzonej daty i godziny (OLE DB).
Formularze i raporty Do formularzy i raportów możesz dodać typ danych rozszerzonej daty/godziny. W formularzu możesz używać selektora daty i maski wprowadzania, aby wprowadzać datę w większym zakresie — nie dotyczy to jednak precyzji ułamkowej dla nanosekund.
Obsługa wyrażeń Typ danych rozszerzonej daty/godziny obsługuje Funkcje agregujące w języku SQL oraz ocenę wyrażeń. Przykładowo, używanie LoggedDateTime jako pola z typem danych rozszerzonej daty/godziny:
Zadanie |
Przykład |
Wynik |
---|---|---|
Znajdowanie wartości minimalnej |
Min(LoggedDateTime) |
Najwcześniejsza data i godzina objęta zakresem |
Wyodrębnianie miesiąca |
Month(LoggedDateTime) |
Nazwa miesiąca, na przykład styczeń |
Dodawanie jednego dnia |
[LoggedDateTime]+1 |
Wtorek zmieniłby się na środę |
Uwagi dotyczące zgodności z poprzednimi wersjami
Typ danych rozszerzonej daty/godziny nie jest zgodny z poprzednimi wersjami programu Microsoft Access. Jeśli typ jest używany w lokalnej tabeli programu Access, wersje programu Access, które nie zawierają tej funkcji, nie będą mogły otworzyć bazy danych.
Typ danych Rozszerzona data/godzina można włączyć lub wyłączyć na potrzeby operacji łączenia i importowania za pomocą opcji Bieżący dostęp do bazy danychObsługuj rozszerzony typ danych data/godzina dla tabel połączonych/lmportowanych. Aby uzyskać więcej informacji, zobacz Ustawianie opcji użytkownika dla bieżącej bazy danych.
Używanie typu danych rozszerzonej daty/godziny jako ciągu znaków w VBA
W poniższych przykładach języka VBA są używane metody obiektu DAO w celu wyświetlania, wprowadzania i oceniania typu danych rozszerzonej daty/godziny na podstawie tabeli przedstawionej poniższej.
ID |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 |
1/1/2001 |
Nazwa tabeli: DTETable
Typ danych ID: Autonumber Typ danych DTEData: Rozszerzona data/godzina Typ danych DTData: Data/godzinaPrzykład: Wyświetlanie daty i godziny
Poniższy przykład wyświetla datę i godzinę. Używanym formatem jest mm/dd/rrrr gg:mm:ss.nnnnnnn w systemie 24-godzinnym. Formatu nie można dostosowywać.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
Debug.Print rs!DTETable
rs.MoveNext
Loop
Wynik Program Access wyświetla : 01/01/0002 01:01:03.1234567.
Przykład: Wprowadzanie daty i godziny
Poniższy przykład zapewnia wprowadzenie daty i godziny przy użyciu formatu ciągu znaków. Obsługiwane są wszystkie standardowe formaty daty i godziny.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
.AddNew
![DTEData] = "1/1/9999 1:1:1.0123 AM"
![DTData] = #1/1/2001#
.Update
End With
Wynik Program Access dodaje nowy wiersz (ID = 2):
ID |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 |
1/1/2001 |
2 |
1/1/9999 1:01:01.0123000 |
1/1/2001 |
Przykład: Ocenianie wyrażenia zapytania
W poniższym przykładzie jest używana Funkcja Day, aby wyodrębnić numer dnia z pól daty i godziny.
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
Debug.Print "The day of the month is: "&rs!day
rs.MoveNext
Loop
Wynik Program Access wyświetla :
Dniem miesiąca jest: 1
Dniem miesiąca jest: 1Zobacz też
Wprowadzenie do typów danych i właściwości pól