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).
– Figyelmeztetés : Ha kifejezéseket hoz létre, és az AccessBen a Kiterjesztett dátum/idő adattípuson alapuló dátum-/időfüggvényeket használ, 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 létrehozhat egy átmenő lekérdezést az egyenértékű SQL Server kifejezés és dátum/idő függvények használatához. További információ: Az Access SQL és SQL Server TSQL összehasonlítása.
Tartalom
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ása é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 Tizedeshelyek növelése
vagy a Tizedeshelyek csökkentése
.
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.
Űrlapok é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.
| Azonosító | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 AM | 2001. 01. 01. |
Tábla neve: DTETable
Azonosító adattípusa: Számláló
DTEData adattípus: Meghosszabbított dátum/idő
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):
| Azonosító | 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
A Bővített dátum/idő függvények lekérdezési kifejezésekben
A következő függvények a Date/Time Extended függvényekkel működnek a lekérdezési kifejezésekben:
Year, Month, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff és DatePart.
Emellett egyes függvények bővített verziói nem tudják használni az argumentum típusát annak meghatározására, hogy a számításnak dátum/idő kiterjesztett értéket kell eredményeznie. Ezek a következők:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended és TimeExtended.
Ezek a függvények ugyanúgy működnek, mint a "Bővített" nélküli függvény a végén, de dátum/idő helyett dátum/idő értéket ad vissza.
Vegye figyelembe, hogy a VBA nem lett módosítva, az új függvények nem lesznek felismerve a VBA-kódban, és a meglévő függvények nem fognak működni a kiterjesztett dátum/idő értékekkel.
Példa
Eredeti lekérdezés:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Most módosítsa a DateValue([OrderDate]) értéket DateValueExtended([OrderDate]) értékre, amely kijavítja az első kifejezést.
Vegye figyelembe, hogy az Access nem kezeli a Date/Time Extended oszlopok Format függvényét; egyszerűen beállíthatja az oszlop Format (Formátum) tulajdonságát.
Ezért ha a következőt használja:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
A második oszlop Format (Formátum ) tulajdonságát pedig állítsa "Short Date" (Rövid dátum) értékre, a kívánt eredményt kapja.