Типът данни "Удължено дата/час" съхранява информация за дата и час и е подобен на типа данни "Дата/час", но предоставя по-голям диапазон от дати, по-висока дробна точност и съвместимост с типа на датата SQL Server datetime2. Когато импортирате или свързвате данни на Access към SQL Server, можете последователно да съпоставите поле за дата и час на Access в колона SQL Server дата и час2. За повече информация вж. datetime2 (Transact-SQL).
Предупреждение Когато създавате изрази и използвате функции за дата/час въз основа на типа данни "Удължено дата/час" в Access, може да загубите точност в изчисленията или да срещнете други проблеми с резултатите. Наясно сме с този проблем и планираме да поддържаме по-добре изразите и функциите в предстоящо издание. За да заобиколите проблема, можете да Създаване на съдържание транзитна заявка, за да използвате еквивалентните функции за SQL Server израз и дата/час. За повече информация вижте Сравняване на Access SQL с SQL Server TSQL.
В тази статия
Използване на типа данни "Удължено дата/час" като низ във VBA |
Сравняване на типове данни "Удължено дата/час"
Таблиците по-долу обобщават важните разлики между двата типа данни.
Атрибут |
Дата/час |
Удължено дата/час |
---|---|---|
Минимална стойност |
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 цифри. За да управлявате показването на дробните наносекунди, отворете Таблица, на лентата изберете Полета и в групата Форматиране изберете Увеличаване на десетичните знаци или Намаляване на десетичните знаци .
Форматиране И двата типа данни "Дата/час" и "Удължено време", използват подобни стандартни низове за форматиране на "Обща дата", "Дълга дата", "Междиннадата", "Кратка дата", "Дълъг час", "Среден час" и "Кратък час" и поддържат персонализирано форматиране. За типа данни "Удължено дата/час" стандартните формати, базирани на време, поддържат също и дробна точност за наносекунди. Форматирането на типа данни "Удължено дата/час" по подразбиране е във формати " Обща дата " и "Дълъг час " и следва опциите, зададени в регионалните настройки на Windows. Можете също да управлявате форматирането на дробната точност с помощта на свойството Десетичен Places, за да зададете броя на цифрите вдясно от десетичната точка (1 – 7).
Свързване и импортиране Можете също да се свържете към или да импортирате от бази данни със съответстващ тип данни, като например типа данни SQL Server datetime2. SQL Server версия 2014 или по-нови бази данни се поддържат. Типът данни "Удължено дата/час" изисква използването на Microsoft ODBC драйвер за SQL Server 11 или по-нова версия. Препоръчваме да използвате Microsoft ODBC Driver 13.1 за SQL Server. Използването на OLE база данни също се поддържа. За повече информация вж. Поддръжка на типа данни за подобрения в дата и час на ODBC и използване на подобрени функции за дата и час (OLE база данни)..
Forms и отчети Можете да добавите типа данни "Удължено дата/час" към формуляр или отчет. Във формуляр можете да използвате инструмента за избор на дата и маската за въвеждане, за да въведете дата с по-големия диапазон, но не и дробната точност за наносекунди.
Поддръжка на изрази Типът данни "Удължено дата/час" поддържа SQL агрегатни функции и оценка на изрази. Например чрез LoggedDateTime като поле с данни от типа "Удължено дата/час":
Задача |
Пример |
Резултат |
---|---|---|
Намиране на минималната стойност |
Min(LoggedDateTime) |
Най-ранната дата и час в рамките на диапазона |
Извлечи месеца |
Month(LoggedDateTime) |
Името на месеца, като например януари |
Добавяне на един ден |
[Регистрирана_датаTime]+1 |
Вторник ще стане сряда |
Съображения за обратна съвместимост
Типът данни "Удължено дата/час" не е съвместим с предишни версии на Microsoft Access. Ако типът се използва в локална таблица на Access, версиите на Access, които не включват тази функция, няма да могат да отворят базата данни.
Можете да разрешите или забраните типа данни "Удължено дата/час" за операции на свързване и импортиране с опцията "Достъп до текущата база данни" опцията "Поддръжка на разширен тип данни за дата/час" за свързани/импортирани таблици. За повече информация вижте Задаване на потребителски опции за текущата база данни.
Използване на типа данни "Удължено дата/час" като низ във VBA
Следващите примери на VBA използват методите DAO за показване, въвеждане и оценяване на типа данни "Удължено дата/час" въз основа на таблицата по-долу.
ID |
DTEData |
DTData |
1 |
01.1.2017 г., 01:03.1234567 |
1.1.2001 |
Име на таблица: Тип данни "ИД на DTETable
": Тип данни "Автономериране "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 |
01.1.2017 г., 01:03.1234567 |
1.1.2001 |
2 |
01.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Вж. също
Въведение в типовете данни и свойствата на полетата