A Kiterjesztett dátum/idő adattípus dátum- és időadatokat tárol, és hasonló a Dátum/idő adattípushoz, de nagyobb dátumtartományt, nagyobb tört pontosságot és kompatibilitást biztosít a SQL Server datetime2 dátumtípussal. Amikor Access-adatokat importál vagy csatol SQL Server, konzisztensen leképezhet egy Access Date/Time Extended mezőt egy SQL Server datetime2 oszlopra. További információ: datetime2 (Transact-SQL).
Figyelem Amikor kifejezéseket hoz létre, és dátum-/időfüggvényeket használ a Kiterjesztett dátum/idő adattípus alapján az Accessben, elveszítheti a számítások pontosságát, vagy más problémákba ütközhet az eredményekkel kapcsolatban. Tudunk a problémáról, és tervezzük, hogy egy későbbi kiadásban jobban támogatjuk a kifejezéseket és függvényeket. Áthidaló megoldásként átmenő lekérdezést Létrehozás a megfelelő SQL Server kifejezés és dátum/idő függvények használatára. További információ: Az Access SQL és SQL Server TSQL összehasonlítása.
A témakör tartalma
A dátum/idő és a dátum/idő bővített adattípusának összehasonlítása |
A Kiterjesztett dátum/idő adattípus használata sztringként a VBA-ban |
A dátum/idő és a dátum/idő bővített adattípusának összehasonlítása
Az alábbi táblázatok a két adattípus közötti fontos különbségeket összegzik.
Attribútum |
Dátum és idő |
Meghosszabbított dátum/idő |
---|---|---|
Minimális érték |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Maximális érték |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
Pontosság |
0,001 másodperc |
1 nanoszekvenciás |
Méret |
Dupla pontosságú lebegőpontos |
42 bájtos kódolt sztring |
A Kiterjesztett dátum/idő adattípus használata
Az alábbi információk a fontos használati szempontokat ismertetik.
Táblatervező nézet A nagyobb adattartomány és a nagyobb pontosság kihasználásához hozzáadhat egy mezőt egy Access-táblához. A Dátum/idő adattípust a Táblatervező nézetben dátum/idő típusúvá is konvertálhatja. Ez az adattípus elsődleges kulcsmezőként való használata is támogatott. További információ: tábla Létrehozás és mezők hozzáadása.
A dátum és az idő megadása A dátum- és időértékek megadása hasonló a Dátum/idő adattípushoz, azzal a különbségsel, hogy tört nanoszekron értéket is megadhat. Például:
-
Bejegyzés formátuma: mm/dd/yyyy hh:mm:ss.nnnnnnnn
-
Példa: 06/15/1215 09:25:3.234
Ha 7-nél több tört nanoszekond van, a rendszer 7 számjegyre kerekítve lesz. A tört nanoszekvenciák megjelenítésének szabályozásához nyissa meg a Táblázatot, a menüszalagon válassza a Mezők lehetőséget, majd a Formázás csoportban válassza a Decimális értékek növelése vagy a Decimális értékek csökkentése lehetőséget.
Formázás A Date/Time és a Date/Time Extended adattípusok is hasonló szabványos formázási sztringeket használnak: Általános dátum, Hosszú dátum, Közepes dátum, Rövid dátum, Hosszú idő, Közepes idő és Rövid idő , és mindkettő támogatja az egyéni formázást. A Kiterjesztett dátum/idő adattípus esetében az időalapú szabványos formátumok a nanoszekvenciák tört pontosságát is támogatják. A Kiterjesztett dátum/idő adattípus formázása alapértelmezés szerint általános dátum - és hosszú időformátumú , és a Windows területi beállításaiban megadott beállításokat követi. A tört pontosság formázását a Tizedes Places tulajdonság használatával is szabályozhatja a tizedesvessző jobb oldalán lévő számjegyek számának (1-7) megadásához.
Csatolás és importálás A megfelelő adattípusú adatbázisokhoz is csatolhat vagy importálhat adatbázisokat, például a SQL Server datetime2 adattípust. SQL Server 2014-es vagy újabb verziójú adatbázisok támogatottak. A Kiterjesztett dátum/idő adattípushoz a Microsoft ODBC-illesztőt kell használni a SQL Server 11-es vagy újabb verziójához. A SQL Server a Microsoft ODBC Driver 13.1 használatát javasoljuk. Az OLE DB használata is támogatott. További információ: Az ODBC dátum- és időfejlesztéseinek adattípus-támogatása és a Továbbfejlesztett dátum- és időfunkciók (OLE DB) használata.
Forms és jelentések A Meghosszabbított dátum/idő adattípust hozzáadhatja egy űrlaphoz vagy jelentéshez. Az űrlapokon a dátumválasztóval és a beviteli maszkkal megadhat egy nagyobb tartományt tartalmazó dátumot, nanoszekvenciák esetén azonban nem.
Kifejezéstámogatás A Date/Time Extended adattípus támogatja az SQL összesítő függvényeket és a kifejezések kiértékelését. Ha például a LoggedDateTime mezőt használja a Kiterjesztett dátum/idő adattípusú mezőként:
Feladat |
Példa |
Eredmény |
---|---|---|
A minimális érték megkeresése |
Min(LoggedDateTime) |
A tartományon belüli legkorábbi dátum és idő |
A hónap kibontása |
Month(LoggedDateTime) |
A hónap neve, például január |
Egy nap hozzáadása |
[LoggedDateTime]+1 |
A kedd szerdává válik |
Megfontolandó szempontok a korábbi verziókkal való kompatibilitással kapcsolatban
A Kiterjesztett dátum/idő adattípus nem kompatibilis a Microsoft Access korábbi verzióival. Ha a típust egy helyi Access-táblában használja, az Access azon verziói, amelyek nem tartalmazzák a funkciót, nem fogják tudni megnyitni az adatbázist.
Engedélyezheti vagy letilthatja a Kiterjesztett dátum/idő adattípust a műveletek összekapcsolásához és importálásához az Aktuális adatbázis-hozzáféréstámogatási dátum/idő kiterjesztett adattípussal csatolt/lmportált táblák esetében. További információt Az aktuális adatbázis felhasználói beállításainak megadása című témakör tartalmaz.
A Kiterjesztett dátum/idő adattípus használata sztringként a VBA-ban
Az alábbi VBA-példák DAO-metódusokkal jelenítik meg, mutatják be és értékelik ki a Kiterjesztett dátum/idő adattípust az alábbi táblázat alapján.
ID |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 AM |
2001. 01. 01. |
Tábla neve: DTETable
ID adattípus: Számláló DTEData adattípus: Dátum/idő Bővített DTData adattípus: Dátum/időPélda: A dátum és az idő megjelenítése
Az alábbi példa a dátumot és az időt jeleníti meg. A használt formátum: hh/dd/yyyy hh:mm:ss.nnnnnnn 24 óra alatt. A formátum nem szabható testre.
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
Eredmény Az Access ekkor megjelenik: 01/01/0002 01:01:03.1234567.
Példa: A dátum és az idő megadása
Az alábbi példa sztringformátumban adja meg a dátumot és az időt. Minden szabványos dátum- és időformátum támogatott.
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
Eredmény Az Access új sort ad hozzá (azonosító = 2):
ID |
DTEData |
DTData |
1 |
1/1/2 1:01:03.1234567 AM |
2001. 01. 01. |
2 |
1/1/9999 1:01:01.0123000 AM |
2001. 01. 01. |
Példa: Lekérdezési kifejezés kiértékelése
Az alábbi példa a Day függvénnyel nyeri ki a napszámot a dátum- és időmezőkből.
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
Eredmény Az Access a következőt jeleníti meg:
A hónap napja: 1
A hónap napja: 1