Използване на типа данни "Удължено време/дата"

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021

Типът данни "Удължено дата/час" съхранява информация за дата и час и е подобен на типа данни "Дата/час", но предоставя по-голям диапазон от дати, по-висока дробна точност и съвместимост с типа на датата 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 база данни)..

Формуляри и отчети Можете да добавите типа данни "Удължено дата/час" към формуляр или отчет. Във формуляр можете да използвате инструмента за избор на дата и маската за въвеждане, за да въведете дата с по-големия диапазон, но не и дробната точност за наносекунди.

Поддръжка на изрази Типът данни "Удължено дата/час" поддържа SQL агрегатни функции и оценка на изрази. Например чрез LoggedDateTime като поле с данни от типа "Удължено дата/час":

Задача Пример Резултат
Намиране на минималната стойност Min(LoggedDateTime) Най-ранната дата и час в рамките на диапазона
Извлечи месеца Month(LoggedDateTime) Името на месеца, като например януари
Добавяне на един ден [Регистрирана_датаTime]+1 Вторник ще стане сряда

Най-горе на страницата

Съображения за обратна съвместимост

Типът данни "Удължено дата/час" не е съвместим с предишни версии на Microsoft Access. Ако типът се използва в локална таблица на Access, версиите на Access, които не включват тази функция, няма да могат да отворят базата данни.

Можете да разрешите или забраните типа данни "Удължено дата/час" за операции на свързване и импортиране с опцията "Достъп до текущата база данни" опцията "Поддръжка на разширен тип данни за дата/час" за свързани/импортирани таблици. За повече информация вижте Задаване на потребителски опции за текущата база данни.

Най-горе на страницата

Използване на типа данни "Удължено дата/час" като низ във VBA

Следващите примери на VBA използват методите DAO за показване, въвеждане и оценяване на типа данни "Удължено дата/час" въз основа на таблицата по-долу.

ИД 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):

ИД 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

Функции, които работят с "Удължено дата/час" в изрази на заявки

Следните функции работят с "Удължено дата/час" в изрази на заявки:
​​​​​​​
Година, Месец, Работен ден, Ден, Час, Минута, Втори, ДатаДобавка, DateDiff и DatePart.

Освен това има разширени версии на някои функции, които не могат да използват типа на аргумента, за да се определи, че изчислението трябва да доведе до стойност на "Удължено дата/час". Това са:

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

Тези функции работят по същия начин като функцията без "Разширен" в края, но връщат стойност за "Удължено дата/час", а не стойност за "Дата/час".

Обърнете внимание, че VBA не е променен, новите функции няма да се разпознаят във VBA кода и съществуващите функции няма да работят със стойностите на "Удължено дата/час".

НАПРИМЕР:

Първоначална заявка:


Select DateValue([OrderDate]) AS OrderDateOnly_DateValue

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

From tblOrders

Сега променете DateValue([OrderDate]) на DateValueExtended([OrderDate]), което ще коригира първия израз.

Обърнете внимание, че Access не обработва функцията Format за колони с удължено време/дата; можете просто да зададете свойството Формат за колоната.

Следователно, ако използвате:


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

FROM Table1;

И задайте свойството Формат за втората колона на "Кратка дата", ще получите желаните резултати.

Най-горе на страницата

Вж. също

Въведение в типовете данни и свойствата на полетата

Форматиране на поле за дата и час

Създаване или изтриване на поле за дата и час