Datuma/laika paplašinātais datu tips glabā datuma un laika informāciju, un tas ir līdzīgs datuma/laika datu tipam, bet tas nodrošina lielāku datumu diapazonu, lielāku frakcionālo daļu precizitāti un saderību ar datuma tipu SQL Server datetime2. Importējot vai saistot Access datus ar SQL Server, varat konsekventi kartēt Access lauku Date/Time Extended uz kolonnu SQL Server datetime2. Papildinformāciju skatiet rakstā datetime2 (Transact-SQL).
brīdinājums Ja programmā Access izveidojat izteiksmes un izmantojat datuma/laika funkcijas, kuru pamatā ir datu tips Datuma/laika Paplašināts, aprēķini var zaudēt precizitāti vai radīsies citas problēmas ar rezultātiem. Mēs zinām par šo problēmu un plānojam labāku atbalstu izteiksmēm un funkcijām kādā no turpmākajiem laidieniem. Lai risinātu šo problēmu, varat izveidot tranzītvaicājumu, lai izmantotu ekvivalentu SQL Server izteiksmes un datuma/laika funkcijas. Papildinformāciju skatiet sadaļā Access SQL un SQL Server TSQL salīdzinājums.
Tēmas šajā rakstā
| Datuma/laika un datuma/laika paplašināto datu tipu salīdzinājums | Paplašinātā datuma/laika datu tipa izmantošana | Atpakaļsaderības apsvērumi | Datu tipa Date/Time Extended izmantošana kā virkne VBA |
|---|
Datuma/laika un datuma/laika paplašināto datu tipu salīdzinājums
Tālāk esošajās tabulās ir apkopotas būtiskas atšķirības starp abiem datu tipiem.
| Atribūts | Datums/laiks | Datums/laiks paplašināts |
|---|---|---|
| Minimālā vērtība | 100-01-01 00:00:00 | 0001-01-01 00:00:00 |
| Maksimālā vērtība | 9999-12-31 23:59:59.999 | 9999-12-31 23:59:59.9999999 |
| Precizitāte | 0.001 sekunde | 1 nanosekunde |
| Lielums | Dubultas precizitātes peldošā komata | 42 baitu kodēta virkne |
Paplašinātā datuma/laika datu tipa izmantošana
Tālāk sniegtajā informācijā aprakstīti svarīgi lietošanas apsvērumi.
Table Design view Lai izmantotu lielāku datu diapazonu un lielāku precizitāti, varat pievienot lauku Access tabulai. Varat arī tabulas noformējuma skatā konvertēt datu tipu Date/Time uz Date/Time Exped. Tiek atbalstīta arī šī datu tipa kā primārās atslēgas lauka izmantošana. Papildinformāciju skatiet sadaļā Tabulas izveide un lauku pievienošana.
Datuma un laika ievadīšana Datuma un laika vērtību ievadīšana ir līdzīga datu tipam Date/Time, tikai var ievadīt arī daļskaitli nanosekundē. Piemērs.
- Ieraksta formāts: mm/dd/yyyy hh:mm:ss.nnnnnnn
- Piemērs: 06/15/1215 09:25:3.234
Ja ir vairāk nekā 7 frakcionētas nanosekundes, tās tiek noapaļotas līdz 7 cipariem. Lai kontrolētu daļskaitļu nanosekunžu rādīšanu, atveriet tabulu, lentē atlasiet Lauki un grupā Formatējums atlasiet pogas Palielināt decimāldaļas
vai Pogas Samazināt decimāldaļas
.
Formatējums Gan datu tips Date/Time, gan Date/Time Extended izmanto līdzīgas standarta formatēšanas virknes ( General Date), Long Date, Medium Date, ShortDate, Long Time, Medium Time un Short Time (Formāts), un abi atbalsta pielāgotu formatējumu. Datuma/laika paplašinātā datu tipa standarta formāti atbalsta arī nanosekunžu frakcionētu precizitāti. Datu tipa Date/Time Extended formatējums pēc noklusējuma ir Vispārīgs datuma formāts un Garais laika formāts , un tas atbilst Windows reģionālajos iestatījumos norādītajām opcijām. Varat arī kontrolēt daļskaitļu precizitātes formatējumu, izmantojot rekvizītu Decimal Places, lai norādītu ciparu skaitu pa labi no decimālzīmes (1-7).
Saistīšana un importēšana Varat arī izveidot saiti uz datu bāzēm ar atbilstošu datu tipu, piemēram, SQL Server datetime2, vai importēt no tām. Tiek atbalstītas SQL Server versijas 2014 vai jaunākas datu bāzes. Datuma/laika paplašinātajam datu tipam ir jāizmanto Microsoft ODBC draiveris SQL Server 11 vai jaunākai versijai. Mēs iesakām izmantot Microsoft ODBC draiveri 13.1 darbam ar SQL Server. Tiek atbalstīta arī OLE DB izmantošana. Papildinformāciju skatiet rakstā Datu tipa atbalsts ODBC datuma un laika uzlabojumiem un Uzlaboto datuma un laika līdzekļu (OLE DB) izmantošana.
Veidlapas un atskaites Formai vai atskaitei varat pievienot datu tipu Pagarinātais datums/laiks. Formā varat izmantot datuma atlasītāju un ievades masku, lai ievadītu datumu ar lielāku diapazonu, bet ne ar daļskaitļu precizitāti nanosekundēm.
Izteiksmju atbalsts Datuma/laika datu tips Extended atbalsta SQL apkopošanas funkcijas un izteiksmju novērtēšanu. Piemēram, izmantojot LoggedDateTime kā lauku ar datu tipu Date/Time Extended
| Uzdevums | Piemērs | Rezultāts |
|---|---|---|
| Minimālās vērtības atrašana | Min(LoggedDateTime) | Agrākais datums un laiks diapazonā |
| Mēneša izvilkšana | Month(LoggedDateTime) | Mēneša nosaukums, piemēram, janvāris |
| Pievienot vienu dienu | [LoggedDateTime]+1 | Otrdiena kļūs par trešdienu |
Atpakaļsaderības apsvērumi
Datuma/laika datu tips Extended nav saderīgs ar iepriekšējām Microsoft Access versijām. Ja tips tiek izmantots lokālā Access tabulā, Access versijas, kurās nav iekļauts šis līdzeklis, nevarēs atvērt datu bāzi.
Varat iespējot vai atspējot datu tipu Date/Time Extended saišu veidošanas un importēšanas operācijām, izmantojot piekļuves opciju Pašreizējā datu bāzeAtbalstīt Date/Time Extended datu tipu saistītajām/portētajām tabulām. Papildinformāciju skatiet rakstā Lietotāja opciju iestatīšana pašreizējai datu bāzei.
Datu tipa Date/Time Extended izmantošana kā virkne VBA
Tālāk norādītajos VBA piemēros tiek izmantotas DAO metodes, lai parādītu, ievadītu un novērtētu datu tipu Date/Time Extended atbilstoši tālāk redzamajai tabulai.
| ID | DTEData | DTData |
|---|---|---|
| 1 | 01.01.02. 01:03.1234567 | 1/1/2001 |
Tabulas nosaukums: DTETable
ID datu tips: Automātiskais numurs
DTEData datu tips: Datums/laiks paplašināts
DTData datu tips: Datums/laiks
Piemērs: datuma un laika parādīšana
Tālāk sniegtajā piemērā tiek parādīts datums un laiks. Lietojamais formāts ir mm/dd/gggg hh:mm:ss.nnnnnnnn 24 stundu formātā. Formāts nav pielāgojams.
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
Rezultāts Access displeji: 01/01/0002 01:01:03.1234567.
Piemērs: datuma un laika ievadīšana
Tālāk sniegtajā piemērā tiek ievadīts datums un laiks, izmantojot virknes formātu. Tiek atbalstīti visi standarta datuma un laika formāti.
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
Rezultāts Programma Access pievieno jaunu rindu (ID = 2):
| ID | DTEData | DTData |
|---|---|---|
| 1 | 01.01.02. 01:03.1234567 | 1/1/2001 |
| 2 | 01.01.9999 01:01:01.0123000 | 1/1/2001 |
Piemērs: vaicājuma izteiksmes novērtēšana
Tālāk esošajā piemērā izmantota funkcija Day , lai izvilktu dienas numuru no datuma un laika laukiem.
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
Rezultāts Programma Access parāda:
Mēneša diena ir: 1
Mēneša diena ir: 1
Funkcijas, kas darbojas ar Date/Time Extended vaicājumu izteiksmēs
Tālāk norādītās funkcijas darbojas ar Date/Time Extended vaicājumu izteiksmēs:
Gads, Mēnesis, Weekday, Day, Hour, Minute, Second, DateAdd, DateDiff un DatePart.
Turklāt ir dažu funkciju paplašinātās versijas, kas nevar izmantot argumenta tipu, lai noteiktu, vai aprēķinam ir jāizveido datuma/laika paplašinātā vērtība. Tie ir:
DateValueExtended, TimeValueExtended, DateSerialExtended, TimeSerialExtended, NowExtended, DateExtended, DateTimeExtended un TimeExtended.
Šīs funkcijas darbojas tāpat kā funkcija bez "Extended" beigās, bet atgriež Date/Time Extended vērtību, nevis Date/Time vērtību.
Ņemiet vērā, ka VBA nav modificēts, jaunās funkcijas netiks atpazītas VBA kodā, un esošās funkcijas nedarbosies ar datuma/laika paplašinātajām vērtībām.
Piemērs
Sākotnējais vaicājums:
Select DateValue([OrderDate]) AS OrderDateOnly_DateValue
, Format([OrderDate],"Short Date") AS OrderDateOnly_Format
From tblOrders
Tagad mainiet DateValue([Pasūtījuma_datums]) uz DateValueExtended([Pasūtījuma_datums]), kas izlabos pirmo izteiksmi.
Ņemiet vērā, ka programma Access neapstrādā formāta funkciju datuma/laika paplašinātajām kolonnām; varat vienkārši iestatīt kolonnas rekvizītu Format.
Tāpēc, ja izmantojat:
SELECT DateValueExtended([OrderDate]) AS OrderDateOnly_DateValue, Table1.OrderDate
FROM Table1;
Un iestatiet otrās kolonnas rekvizītu Format uz "Short Date", jūs saņemsiet vēlamos rezultātus.
Skatiet arī
Iepazīšanās ar datu tipiem un lauku rekvizītiem