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 kohdassa datetime2 (Transact-SQL).
Varoitus Kun luot lausekkeita ja käytät Accessissa Laajennettu päivämäärä ja kellonaika -tietotyyppiin perustuvia päivämäärä- ja kellonaikafunktioita, laskutoimitusten tarkkuus voi heikentyä tai tuloksissa saattaa ilmetä muita ongelmia. 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
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ää laajempaa tietoaluetta ja parempaa 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-arvot lisätään samaan tapaan kuin Pvm./klo-tietotyypissä, paitsi että voit myös syöttää nanosekunnin desimaaliarvon. 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 desimaaliarvojen näyttämistä, avaa taulukko, valitse valintanauhasta Kentät ja valitse sitten Muotoilu-ryhmässäLisää desimaaleja
tai Vähennä desimaaleja
.
Muotoilu Sekä Päivämäärä ja kellonaika- että Laajennettu päivämäärä ja kellonaika -tietotyypit käyttävät samanlaisia vakiomuotoilumerkkijonoja yleinen päivämäärä, pitkä päivämäärä, keskipitkä päivämäärä, lyhyt päivämäärä, pitkä kellonaika, keskipitkä kellonaika ja lyhyt kellonaika , 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ää tietokantaan tai tuoda 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 -ohjainta 13.1 SQL Server -palvelimelle. Myös OLE DB:n käyttöä tuetaan. Lisätietoja on artikkeleissa ODBC:n päivämäärän ja kellonajan parannusten tietotyyppituki 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.
Lausekkeiden tuki Laajennettu päivämäärä ja kellonaika -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ä tätä ominaisuutta, eivät voi avata tietokantaa.
Voit ottaa Laajennettu päivämäärä ja kellonaika -tietotyypin käyttöön tai poistaa sen käytöstä linkitystä ja tuontia varten Nykyinen tietokanta Access -vaihtoehdolla : Laajennettu päivämäärä ja kellonaika -tietotyyppi linkitetyissä/siirretyissä taulukoissa. 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
Tunnuksen tietotyyppi: Laskuri
DTEData-tietotyyppi: Laajennettu päivämäärä ja kellonaika
DTData-tietotyyppi: Päivämäärä/aika
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/01/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 (ID = 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 Laajennettu päivämäärä ja kellonaika -funktion kanssa kyselylausekkeissa
Seuraavat funktiot toimivat Laajennettu päivämäärä ja kellonaika -funktion kanssa kyselylausekkeissa:
Vuosi, kuukausi, viikonpäivä, päivä, tunti, minuutti, sekunti, päivämäärälisää, päivämääräDiff ja DatePart.
Lisäksi on olemassa laajennettuja versioita joistakin funktioista, jotka eivät voi käyttää argumenttityyppiä määrittämään, pitäisikö laskutoimituksen tuottaa laajennettu päivämäärä ja kellonaika. Näin tapahtuu seuraavissa tapauksissa:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended ja TimeExtended.
Nämä funktiot toimivat samaan tapaan kuin funktio ilman sanaa "Laajennettu" lopussa, mutta ne palauttavat Laajennettu päivämäärä ja kellonaika -arvon päivämäärä- ja aika-arvon sijaan.
Huomaa, että VBA:ta ei ole muokattu, uusia funktioita ei tunnisteta VBA-koodissa ja aiemmin luodut funktiot eivät toimi laajennetun päivämäärän ja kellonajan arvojen kanssa.
Esimerkki
Alkuperäinen kysely:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Vaihda seuraavaksi DateValue([OrderDate]) muotoon DateValueExtended([OrderDate]), joka korjaa ensimmäisen lausekkeen.
Huomaa, että Access ei käsittele Laajennettu päivämäärä ja kellonaika -sarakkeiden Format-funktiota. voit määrittää sarakkeen Muoto-ominaisuuden.
Jos siis käytät:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Kun määrität toisen sarakkeen Muoto-ominaisuuden arvoksi Lyhyt päivämäärä, saat haluamasi tuloksen.
Sivun alkuun
Katso myös
Tietotyyppien ja kentän ominaisuuksien johdanto