Типът данни "Разширена дата/час" съхранява информация за дата и час и е подобен на типа данни "Дата/час", но предоставя по-голям диапазон от дати, по-висока дробна точност и съвместимост с типа дата на SQL Server дата и час2. Когато импортирате или свързвате данни на Access с SQL Server, можете последователно да съпомените поле За дата/час на Access Extended към SQL Server datetime2 колона. За повече информация вж. дата и час2 (Transact-SQL).

Предупреждение Когато създавате изрази и използвате функции за дата/час въз основа на типа данни "Разширена дата/час" в Access, може да загубите точност в изчисленията или да срещнете други проблеми с резултатите. Наясно сме с този проблем и планираме по-добра поддръжка на изрази и функции в предстоящо издание. Като заобиколно решение можете да създадете пропускана заявка, за да използвате еквивалентните SQL Server и функциите за дата/час. За повече информация вижте Сравняване на access SQL с SQL Server TSQL.
В тази статия
Използване на типа данни "Разширена дата/час" като низ във VBA |
Сравняване на типове данни "Дата/час" и "Дата/час"
Следващите таблици обобщават важните разлики между двата типа данни.
Attribute |
Дата/час |
Разширена дата/час |
---|---|---|
Минимална стойност |
100-01-01 00:00:00 |
0001-01-01 00:00:00 |
Максимална стойност |
9999-12-31 23:59:59.999 |
9999-12-31 23:59:59.9999999 |
Точност |
0,001 секунди |
1 наносекунда |
"размер" |
Плаваща точка с двойна точност |
Кодиран низ от 42 байта |
Използване на типа данни "Разширена дата/час"
Следната информация описва важни съображения за използване.
Изглед за проектиране на таблица За да се възползвате от по-големия диапазон от данни и по-високата точност, можете да добавите поле към таблица на Access. Можете също да преобразувате тип данни "Дата/час" в тип данни "Разширена дата/час" в изглед "Проектиране на таблица". Използването на този тип данни като поле за първичен ключ също се поддържа. За повече информация вижте Създаване на таблица и добавяне на полета.
Въвеждане на датата и часа Въвеждането на стойности за дата и час е подобно на типа данни "Дата/час", с изключение на това, че можете също да въведете дробна наносекунда. Например:
-
Формат на въвеждане: mm/dd/yyyy hh:mm:ss.nnnnnnn
-
Пример: 15.06.1215 09:25:3.234
Ако има повече от 7 дробни наносекунди, те се закръгляват до 7 цифри. За да управлявате показването на дробните наносекунди, отворете таблицата, на лентата изберете Полета ив групата Форматиране изберете Увеличаване на десетичния знак или Намаляване на десетичния знак
.
Форматиране Както типовете данни "Дата/час", така и "Разширена дата/час" използват подобни стандартни низове за форматиране на "Общадата", "Дълга дата", "Средна дата", "Краткадата", "Дълго време", "Средно време" и "Кратък час", и двете поддържат форматиране по избор. За типа данни Date/Time Extended стандартните формати, базирани на време, също поддържат дробна точност за наносекунди. Форматирането на типа данни "Дата/час" е по подразбиране с формати "Обща дата" и "Дълго време" и следва опциите, зададени в Windows регионални настройки. Можете също да управлявате форматирането на дробната точност с помощта на свойството Decimal Places, за да зададете броя на цифрите отдясно на десетичната точка (1–7).
Свързване и импортиране Можете също да свържете или импортирате от бази данни със съответен тип данни, като например типа данни SQL Server datetime2. SQL Server бази данни от версия 2014 или по-нова версия се поддържат. Типът данни "Разширена дата/час" изисква използването на odbc драйвер на Microsoft за SQL Server 11 или по-нова версия. Препоръчваме да използвате odbc драйвера на Microsoft 13.1 за SQL Server. Използването на OLE DB също се поддържа. За повече информация вижте Поддръжка на типа данни за подобрения на дата и час на ODBC и Използване на подобрени функции за дата и час (OLE DB).
Формуляри и отчети Можете да добавите типа данни "Разширена дата/час" към формуляр или отчет. Във формуляр можете да използвате програмата за избор на дата и маската за въвеждане, за да въведете дата с по-големия диапазон, но не и дробната точност за наносекунди.
Поддръжка на изрази Типът данни "Разширена дата/час" поддържа SQL агрегатни функции и оценка на изрази. Например използването на LoggedDateTime като поле с тип данни "Разширена дата/час":
Задача |
Пример |
Резултат |
---|---|---|
Намиране на минималната стойност |
Min(LoggedDateTime) |
Най-ранната дата и час в диапазона |
Извличане на месеца |
Месец(LoggedDateTime) |
Името на месеца, като например януари |
Добавяне на един ден |
[LoggedDateTime]+1 |
Вторник ще стане сряда |
Съображения за обратна съвместимост
Типът данни "Разширена дата/час" не е съвместим с предишните версии на Microsoft Access. Ако типът се използва в локална таблица на Access, версиите на Access, които не включват функцията, няма да могат да отворят базата данни.
Можете да разрешите или забраните типа данни "Разширена дата/час" за операции за свързване и импортиране с опцията "Достъп до текуща база данни" Поддържа "Дата/час разширен тип данни" за свързани/импортирани таблици. За повече информация вижте Задаване на потребителски опции за текущата база данни.
Използване на типа данни "Разширена дата/час" като низ във VBA
Следващите примери за VBA използват методи на DAO, за да показват, въвеждат и оценяват типа данни "Разширена дата/час" въз основа на таблицата по-долу.
ID |
DTEData |
DTData |
1 |
1.1.2 1:01:03.1234567 AM |
1.1.2001 |
Име на таблица: Тип данни DTETable
ID: Тип данни
"Автономериране на DTEData": тип данни "Дата/час, разширен
DTData": Дата/час
Пример: Показване на датата и часа
Примерът по-долу показва датата и часа. Използваният формат е mm/dd/yyyy hh:mm:ss.nnnnnnn в 24-часов часовник. Форматът не може да се персонализира.
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
Резултат Access показва: 01.01.0002 01:01:03.1234567.
Пример: Въвеждане на датата и часа
Примерът по-долу въвежда датата и часа с помощта на формат на низ. Поддържат се всички стандартни формати за дата и час.
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
Резултат Access добавя нов ред (ИД = 2):
ID |
DTEData |
DTData |
1 |
1.1.2 1:01:03.1234567 AM |
1.1.2001 |
2 |
1.1.9999 1:01:01.0123000 AM |
1.1.2001 |
Пример: Оценяване на израз на заявка
Примерът по-долу използва функцията Day, за да извлече номера на деня от полетата за дата и час.
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
Резултат Access показва:
Денят на месеца е: 1
Денят на месеца е: 1
Вж. също
Въведение в типовете данни и свойствата на полетата