Laajennettu päivämäärä ja kellonaika -tietotyypin käyttäminen

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021

Laajennettu päivämäärä ja kellonaika -tietotyyppi tallentaa tietoa päivämäärästä ja kellonajasta ja toimii kuten Päivämäärä ja kellonaika -tietotyyppi, mutta tarjoaa laajemman aikavälin, paremman murto-osien tarkkuuden ja yhteensopivuuden SQL Serverin datetime2-päivämäärätietotyypin kanssa. Kun tuot tai linkität Access-tietoja SQL Serveriin, voit yhdistää Accessin Laajennettu päivämäärä ja kellonaika -kentän yhdenmukaisesti SQL Serverin datetime2-sarakkeeseen. Lisätietoja on artikkelissa Datetime2 (Transact-SQL).

Laajennettu päivämäärä ja kellonaika -alue Varoitus Kun luot lausekkeita ja käytät päivämäärä-/aikafunktioita Accessin Laajennettu päivämäärä ja kellonaika -tietotyypin perusteella, saatat menettää tarkkuuden laskutoimituksissa tai kohdata muita ongelmia tuloksissa. Microsoft on tietoinen ongelmasta, ja lausekkeille ja funktioille on suunnitteilla parempi tuki tulevassa julkaisussa. Vaihtoehtoisena menetelmänä voit luoda läpivientikyselyn käyttääksesi SQL Serverin vastaavia lausekkeita ja päivämäärään tai aikaan liittyviä funktioita. Saat lisätietoja artikkelista Access SQL -palvelimen vertaaminen SQL Server TSQL -palvelimeen.

Artikkelin sisältö

Päivämäärä ja kellonaika- ja Laajennettu päivämäärä ja kellonaika -tietotyyppien vertailu Laajennettu päivämäärä ja kellonaika -tietotyypin käyttäminen Yhteensopivuuteen liittyvät seikat takautuvasti Laajennettu päivämäärä ja kellonaika -tietotyypin käyttäminen merkkijonona VBA:ssa

Päivämäärä ja kellonaika- ja Laajennettu päivämäärä ja kellonaika -tietotyyppien vertailu

Seuraavissa taulukoissa on yhteenveto tärkeimmistä näiden tietotyyppien välisistä eroista.

Määrite Päivämäärä/kellonaika Laajennettu päivämäärä ja kellonaika
Pienin arvo 1.1.100 00.00.00 1.1.0001 00.00.00
Suurin arvo 31.12.9999 23.59.59,999 31.12.9999 23.59.59,9999999
Tarkkuus 0,001 sekuntia 1 nanosekunti
Koko Kaksoistarkkuuksinen liukuluku 42 tavun koodattu merkkijono

Sivun alkuun

Laajennettu päivämäärä ja kellonaika -tietotyypin käyttäminen

Seuraavissa tiedoissa kuvataan tärkeitä asioita, joita tulee ottaa huomioon käytössä.

Taulukon rakennenäkymä Voit hyödyntää suurempaa tietoaluetta ja suurempaa tarkkuutta lisäämällä kentän Access-taulukkoon. Voit myös muuntaa Päivämäärä ja kellonaika -tietotyypin Laajennettu päivämäärä ja kellonaika -tietotyypiksi taulukon rakennenäkymässä. Myös tämän tietotyypin käyttämistä perusavainkenttänä tuetaan. Saat lisätietoja artikkelista Taulukon luominen ja kenttien lisääminen.

Päivämäärän ja kellonajan lisääminen Päivämäärä- ja kellonaika-arvojen lisääminen on samanlaista kuin Päivämäärä ja kellonaika -tietotyyppi, paitsi että voit kirjoittaa myös murtolukuisen nanosekunnin. Esimerkki:

  • Merkinnän muoto: pp.kk.vvvv hh.mm.ss,nnnnnnn
  • Esimerkki: 15.6.1215 9.25.3,234

Jos nanosekunnin desimaaliarvoja on yli seitsemän, ne pyöristetään seitsemään numeroon. Jos haluat hallita nanosekunnin murtolukujen näyttämistä, avaa Taulukko, valitse valintanauhassa Kentät ja valitse Muotoilu-ryhmässäSuurenna desimaaleja-painikkeen kuva tai Pienennä desimaaleja-painikkeen kuva .

Muotoilu Sekä Päivämäärä/aika- että Laajennettu päivämäärä ja kellonaika -tietotyypeissä käytetään samanlaisia vakiomuotoilumerkkijonoja, jotka sisältävät yleisiä päivämääriä, pitkiä päivämääriä, keskipitkää päivämäärää, lyhyttä päivämäärää, pitkää aikaa ja lyhyttä aikaa, ja molemmat tukevat mukautettua muotoilua. Laajennettu päivämäärä ja kellonaika -tietotyypin aikaan perustuvat vakiomuodot tukevat myös nanosekunnin desimaalitarkkuutta. Laajennettu päivämäärä ja kellonaika -tietotyypin muotoilun oletusarvoina käytetään Yleinen päivämäärä- ja Pitkä aika-muotoja, ja siinä seurataan Windowsin aluekohtaisissa asetuksissa määritettyjä asetuksia. Voit myös hallita murtolukujen tarkkuuden muotoilua Desimaalit-ominaisuuden avulla, jos haluat määrittää desimaalipilkun oikealle puolelle kirjoitettavien numeroiden määrän (1–7).

Linkittäminen ja tuominen Voit myös linkittää tietokantoihin tai tuoda niitä tietokannoista, joissa on vastaava tietotyyppi, kuten SQL Server datetime2 -tietotyyppi. SQL Serverin versiota 2014 ja uudempia tietokantoja tuetaan. Laajennettu päivämäärä ja kellonaika -tietotyyppi edellyttää, että käytetään Microsoft ODBC Driver -ohjainta 11 SQL Serverille tai uudempaa versiota. Suosittelemme käyttämään Microsoft ODBC Driver 13.1 -ohjainta SQL Server. Myös OLE DB:n käyttöä tuetaan. Lisätietoja on artikkelissa ODBC-päivämäärän ja kellonajan parannusten tietotyypin tuki ja Parannettujen päivämäärä- ja kellonaikaominaisuuksien (OLE DB) käyttäminen.

Lomakkeet ja raportit Voit lisätä Laajennettu päivämäärä ja kellonaika -tietotyypin lomakkeeseen tai raporttiin. Lomakkeessa voit käyttää päivämäärän valitsinta ja syöttörajoitetta laajemmalla alueella olevan päivämäärän kirjoittamiseksi, mutta et nanosekunnin desimaalitarkkuutta.

Lausekkeen tuki Laajennettu päivämäärä ja aika -tietotyyppi tukee SQL-koostefunktioita ja lausekkeiden arviointia. Esimerkiksi LoggedDateTime-kentän käyttäminen Laajennettu päivämäärä ja kellonaika -tietotyypissä:

Tehtävä Esimerkki Tulos
Etsi vähimmäisarvo Min(LoggedDateTime) Alueen aikaisin päivämäärä ja kellonaika
Poimi kuukausi Kuukausi(LoggedDateTime) Kuukauden nimi, kuten tammikuu
Lisää yksi päivä [LoggedDateTime]+1 Tiistaista tulee keskiviikko

Sivun alkuun

Yhteensopivuus aiempien versioiden kanssa

Laajennettu päivämäärä ja kellonaika -tietotyyppi ei ole yhteensopiva Microsoft Accessin aiempien versioiden kanssa. Jos tyyppiä käytetään paikallisessa Access-taulukossa, access-versiot, jotka eivät sisällä ominaisuutta, eivät voi avata tietokantaa.

Voit ottaa laajennetun päivämäärän ja ajan laajennetun tietotyypin käyttöön tai poistaa sen käytöstä linkitys- ja tuontitoimintoja varten Nykyinen tietokantakäyttö - vaihtoehdolla , joka tukee linkitettyjen/lmportoitujen taulukoiden laajennettua päivämäärä-/aika-tietotyyppiä. Lisätietoja on artikkelissa Nykyisen tietokannan käyttäjäasetusten määrittäminen.

Sivun alkuun

Laajennettu päivämäärä ja kellonaika -tietotyypin käyttäminen merkkijonona VBA:ssa

Seuraavissa esimerkeissä käytetään DAO-menetelmiä Laajennettu päivämäärä ja kellonaika -tietotyypin näyttämiseen, lisäämiseen ja arviointiin alla olevan taulukon perusteella.

Tunnus DTEData DTData
1 1.1.2 1.01.03,1234567 1.1.2001

Taulukon nimi: DTETable
Tunnustietotyyppi: Laskuri
DTEData-tietotyyppi: Laajennettu päivämäärä ja kellonaika
DTData-tietotyyppi: Päivämäärä ja kellonaika

Esimerkki: Päivämäärän ja kellonajan näyttäminen

Seuraava esimerkki näyttää päivämäärän ja kellonajan. Käytetty muoto on mm/dd/yyyy hh:mm:ss.nnnnnnn 24 tunnin kellon mukaan. Muotoa ei voi mukauttaa.


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

Tulos Access näyttää: 01.1.0002 01:01:03.1234567.

Esimerkki: Päivämäärän ja kellonajan lisääminen

Seuraavassa esimerkissä lisätään päivämäärä ja kellonaika merkkijonomuodossa. Kaikkia tavallisia päivämäärän ja ajan muotoja tuetaan.


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

Tulos Access lisää uuden rivin (TUNNUS = 2):

Tunnus DTEData DTData
1 1.1.2 1.01.03,1234567 1.1.2001
2 1.1.9999 1.01.01,0123000 1.1.2001

Esimerkki: Kyselylausekkeen arviointi

Seuraavassa esimerkissä päivän numero poimitaan päivämäärä- ja kellonaikakentistä Day-funktion avulla.


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

Tulos Access näyttää:

Kuukauden päivä on: 1
Kuukauden päivä on: 1

Funktiot, jotka toimivat laajennettuna päivämääränä ja kellonaikana kyselylausekkeissa

Seuraavat funktiot toimivat laajennettuna päivämäärän ja ajan kanssa kyselylausekkeissa:
​​​​​​​
Vuosi, Kuukausi, Arkipäivä, Päivä, Tunti, Minuutti, Toinen, DateAdd, DateDiff ja DatePart.

Lisäksi joissakin funktioissa on laajennettuja versioita, jotka eivät voi käyttää argumenttityyppiä sen määrittämiseen, että laskutoimituksen pitäisi tuottaa Laajennettu päivämäärä ja kellonaika -arvo. Näin tapahtuu seuraavissa tapauksissa:

DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended ja TimeExtended.

Nämä funktiot toimivat samalla tavalla kuin funktio, jonka lopussa ei ole Laajennettu-funktiota, mutta palauttavat Laajennetun päivämäärän ja kellonajan arvon päivämäärän ja kellonajan sijaan.

Huomaa, että VBA:ta ei ole muokattu, uusia funktioita ei tunnisteta VBA-koodissa ja olemassa olevat funktiot eivät toimi Laajennettu päivämäärä ja kellonaika -arvojen kanssa.

Esimerkki

Alkuperäinen kysely:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

, Format([OrderDate],"Short Date") AS OrderDateOnly_Format

From tblOrders

Muuta nyt DateValue([OrderDate]) -arvoksi DateValueExtended([OrderDate]), joka korjaa ensimmäisen lausekkeen.

Huomaa, että Access ei käsittele Laajennettu päivämäärä ja kellonaika -sarakkeiden Muotoile-funktiota. voit määrittää sarakkeelle Muoto-ominaisuuden.

Jos siis käytät:


SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate

FROM Table1;

Määritä toisen sarakkeen Muoto-ominaisuuden arvoksi Lyhyt päivämäärä, niin saat haluamasi tulokset.

Sivun alkuun

Katso myös

Tietotyyppien ja kentän ominaisuuksien johdanto

Päivämäärä ja kellonaika -kentän muotoileminen

Päivämäärä ja kellonaika -kentän luominen tai poistaminen