A Kiterjesztett Dátum/idő adattípus a dátum- és időadatokat tárolja, és hasonló a Dátum/Idő adattípushoz, de nagyobb dátumtartományt, nagyobb törtpontosságot biztosít, és kompatibilis az SQL Server datetime2 adattípusával. Amikor Access-adatokat importál vagy csatol az SQL Server adatbázisba, az Access Kiterjesztett dátum/idő mezőit következetesen megfeleltetheti az SQL Server datetime2 oszlopainak. További információ: datetime2 (Transact-SQL).
– Figyelmeztetés Amikor a Kiterjesztett dátum/idő adattípuson alapuló kifejezéseket hoz létre és dátum/idő függvényeket használ az Accessben, csökkenhet a számítások pontossága, vagy más problémákat tapasztalhat az eredményekkel. Tudunk erről a problémáról, és terveink szerint egy későbbi kiadásban még jobb támogatást fogunk biztosítani a kifejezésekhez és függvényekhez. A probléma megoldásaként létrehozhat egy továbbított 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ót az Access SQL és az SQL Server TSQL összehasonlítása című témakörben talál.
Tartalom
A kiterjesztett dátum/idő és dátum/idő adattípusok összehasonlítása
Az alábbi táblázatok összefoglalják a két adattípus közötti fontos különbségeket.
| 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 nanoszekundum |
| Méret | Dupla pontosságú lebegőpontos szám | 42 bájtos kódolt karakterlánc |
A Kiterjesztett dátum/idő adattípus használata
Az alábbi információk a fontos használati szempontokat ismertetik.
Table Design View A nagyobb adattartomány és nagyobb pontosság érdekében mezőt is hozzáadhat egy Access-táblához. A tábla Tervező nézetében is átalakíthat egy Dátum/Idő típusú adatot Kiterjesztett dátum/idő adattípusra. Ez az adattípus elsődleges kulcsmezőként is használható. További információt a Tábla létrehozása és mezők hozzáadása című témakörben talál.
A dátum és az idő beírása A dátum- és időértékek megadása hasonló a Dátum/Idő adattípushoz, azzal a különbséggel, hogy a tört nanoszekundum is megadható. Például:
- Bejegyzés formátuma: hh/nn/éé óó:pp:ss.nnn
- Példa: 06/15/1215 09:25:3.234
Ha több mint 7 tört nanoszekundum van, a program 7 számjegyre kerekíti őket. A tört nanoszekundumok megjelenítésének szabályozásához nyissa meg a táblázatot, a menüszalagon válassza a Mezők elemet, majd a Formázás csoportban válassza a Tizedeshelyek növelése
a Tizedeshelyek csökkentése
.
Formázás Mind a Dátum/idő, mind a Kiterjesztett dátum/idő adattípus hasonló szabványos formázási sztringeket használ ( Általános dátum),Hosszú dátum,Egyszerű dátum,Rövid dátum,Hosszú idő, Közepes idő és Rövid időpont , é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 nanoszekundumok töredékpontosságát is támogatják. A Kiterjesztett dátum/idő adattípus alapértelmezett formázása Általános dátum és Hosszú idő, és a Windows területi beállításai között megadott beállításokat követi. A törtpontosság formázását úgy is szabályozhatja, hogy a Decimal Places tulajdonsággal megadja a tizedesvesszőtől jobbra lévő számjegyek számát (1-7).
Csatolás és importálás Kapcsolódhat a megfelelő – például SQL Server datetime2 – adattípust használó adatbázisokhoz, illetve importálhat belőlük. Az SQL Server 2014-es vagy újabb verziójának adatbázisai támogatottak. A kiterjesztett dátum/idő adattípushoz Microsoft ODBC Driver for SQL Server 11 vagy újabb verzió szükséges. A Microsoft ODBC Driver 13.1 for SQL Server használatát javasoljuk. Az OLE DB használata is támogatott. További információ: Adattípus-támogatás az ODBC dátum- és időbeli fejlesztéseihez és a továbbfejlesztett dátum- és időszolgáltatások (OLE DB) használata.
Űrlapok és jelentések A Kiterjesztett dátum/idő adattípust űrlapokhoz és jelentésekhez is hozzáadhatja. Az űrlapokon a dátumválasztó és a beviteli maszk segítségével nagyobb tartományú dátumot adhat meg, a nanoszekundumok töredékpontossága nélkül.
Kifejezések támogatása A Kiterjesztett dátum/idő adattípus támogatja az SQL összesítő függvényeit és a kifejezések kiértékelését. Például a LoggedDateTime mezőt használva kiterjesztett dátum/idő adattípussal:
| Feladat | Példa | Eredmény |
|---|---|---|
| A minimális érték megkeresése | Min(LoggedDateTime) | A tartomány legkorábbi dátuma és időpontja |
| A hónap kinyerése | Month(LoggedDateTime) | A hónap neve, például január |
| Egy nap hozzáadása | [LoggedDateTime]+1 | A kedd szerdává vált |
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, a szolgáltatást nem tartalmazó Access-verziók nem fogják tudni megnyitni az adatbázist.
A Kiterjesztett dátum/idő adattípust az összekapcsolási és importálási műveletekhez az Aktuális adatbázis-hozzáférés beállítással engedélyezheti vagy tilthatja le Kiterjesztett dátum/idő adattípus támogatása csatolt/lmportált táblák esetén. 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 karakterláncként a VBA-ban
Az alábbi VBA-példák DAO-metódusokkal jelenítik meg, adják meg é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 de. | 2001. 01. 01. |
Táblanév: DTETable
Azonosító adattípus: Számláló
DTEData adattípus: Meghosszabbított dátum/idő
DTData adattípus: Dátum és 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/nn/éé óó:pp:nnnnnnn 24 órás formátumban. 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 megjeleníti: 01/01/0002 01:01:03.1234567.
Példa: A dátum és az idő beírása
Az alábbi példa karakterláncot használva adja meg a dátumot és az időt. Az összes 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 hozzáad egy új sort (ID = 2):
| Azonosító | DTEData | DTData |
|---|---|---|
| 1 | 1/1/2 1:01:03.1234567 de. | 2001. 01. 01. |
| 2 | 1/1/9999 1:01:01.0123000 de. | 2001. 01. 01. |
Példa: Lekérdezési kifejezés kiértékelése
Az alábbi példa a Day függvény használatával kinyeri a nap számát 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 lekérdezési kifejezésekben kiterjesztett dátum/idő típusú függvényekkel együttműködő függvények
Az alábbi függvények használhatók a kiterjesztett dátum/idő kifejezéssel lekérdezési kifejezésekben:
Year, Month, Weekday, Day, Day, Hour, Minute, Second, DateAdd, DateDiff és DatePart.
Ezenkívül vannak olyan függvények, amelyek nem használják az adott argumentum típusát annak meghatározására, hogy a számításnak ki kell-e adniuk Kiterjesztett dátum/Idő típusú értéket. 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 függvény, a "Bővített" szó vége nélkül, de Dátum/Idő helyett kiterjesztett dátum/idő értéket ad vissza.
Ne feledje, hogy a VBA nem módosult, az új függvények nem ismerhetők fel a VBA-kódban, és a meglévő függvények sem 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]) karakterláncot a DateValueExtended([OrderDate]) értékre, amely javítani fogja az első kifejezést.
Vegye figyelembe, hogy az Access nem kezeli a Format függvényt a Kiterjesztett dátum/idő típusú oszlopoknál; egyszerűen beállíthatja az oszlop Format tulajdonságát.
Ezért ha a következőt használja:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Ha a második oszlop Format tulajdonságát "Rövid dátum" értékre állítja, a kívánt eredményt fogja kapni.