A Kiterjesztett dátum/idő adattípus használata

Hatókör
Microsoft 365-höz készült Access Access 2024 Access 2021

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).

Kiterjesztett dátum-/időtartomány – 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 A Kiterjesztett dátum/idő adattípus használata Megfontolandó szempontok a korábbi verziókkal való kompatibilitással kapcsolatban A kiterjesztett dátum/idő adattípus használata karakterláncként a VBA-ban

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

Vissza a lap tetejére

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ésegomb vagy a Tizedeshelyek csökkentésegomb képét .

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

Vissza a lap tetejére

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.

Vissza a lap tetejére

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.

Vissza a lap tetejére

Lásd még

Adattípusok és mezőtulajdonságok – Bevezetés

Dátum- és időmező formázása

Dátum- és időmező létrehozása vagy törlése