Улучшения даты и времени

В этом разделе описывается поддержка собственного клиента SQL Server для типов данных даты и времени, добавленных в SQL Server 2008.

Дополнительные сведения об улучшениях даты и времени см. в статьях "Улучшения даты и времени" (OLE DB) и "Улучшения даты и времени" (ODBC).

Сведения о примерах приложений, демонстрирующих эту функцию, см. в примерах программирования данных SQL Server.

Использование

В следующих разделах описаны различные способы использования новых типов даты и времени.

Использование даты в качестве отдельного типа данных

Начиная с SQL Server 2008, улучшенная поддержка типов даты и времени делает его более эффективным для использования типа ODBC SQL_TYPE_DATE (SQL_DATE для приложений ODBC 2.0) и типа OLE DB DBTYPE_DBDATE.

Использование времени в качестве отдельного типа данных

OLE DB уже имеет тип данных, содержащий только время, DBTYPE_DBTIME, который имеет точность 1 секунды. В ODBC эквивалентный тип SQL_TYPE_TIME (SQL_TIME для приложений ODBC 2.0).

Новый тип данных времени SQL Server имеет дробные секунды до 100 наносекунд. Для этого требуются новые типы в собственном клиенте SQL Server: DBTYPE_DBTIME2 (OLE DB) и SQL_SS_TIME2 (ODBC). Существующие приложения, записанные для использования времени без дробных секунд, могут использовать столбцы time(0). Существующие типы DBTYPE_TIME OLE DB и ODBC SQL_TYPE_TIME и соответствующие структуры должны работать правильно, если приложения не используют тип, возвращаемый в метаданных.

Использование времени в качестве отдельного типа данных с расширенной точностью дробных секунд

Для некоторых приложений, таких как управление процессами и производственные приложения, требуется возможность обрабатывать данные времени с точностью до 100 наносекунд. Новые типы для этой цели : DBTYPE_DBTIME2 (OLE DB) и SQL_SS_TIME2 (ODBC).

Использование datetime с расширенной точностью дробных секунд

OLE DB уже определяет тип с точностью до 1 наносекунда. Однако этот тип уже используется существующими приложениями SQL Server, и такие приложения ожидают только 1/300 секунды точности. Новый datetime2(3) тип не совместим напрямую с существующим типом datetime. Если это повлияет на поведение приложения, приложения должны использовать новый флаг DBCOLUMN для определения фактического типа сервера.

ODBC также определяет тип с точностью до 1 наносекунда. Однако этот тип уже используется существующими приложениями SQL Server, и такие приложения ожидают только 3 миллисекунда точности. Новый datetime2(3) тип не совместим напрямую с существующим datetime типом. datetime2(3) имеет точность одного миллисекунда и datetime имеет точность 1/300 секунды. В ODBC приложения могут определить, какой тип сервера используется с полем дескриптора SQL_DESC_TYPE_NAME. Поэтому существующий тип SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP для приложений ODBC 2.0) можно использовать для обоих типов.

Использование даты и времени с точностью расширенных дробных секунд и часовой пояс

Для некоторых приложений требуются значения даты и времени с информацией о часовом поясе. Это поддерживается новыми типами DBTYPE_DBTIMESTAMPOFFSET (OLE DB) и SQL_SS_TIMESTAMPOFFSET (ODBC).

Использование данных Date/Time/Datetime/Datetimeoffset с Client-Side преобразованиями в соответствии с существующими преобразованиями

Стандарт ODBC описывает, как работают преобразования между существующими типами меток даты, времени и метки времени. Они расширяются согласованно, чтобы включить преобразования между всеми типами даты и времени, представленными в SQL Server 2008.

См. также

Компоненты собственного клиента SQL Server