Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается поддержка собственного клиента 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.