Partilhar via


Melhorias de data e hora

Este tópico descreve o suporte do SQL Server Native Client para os tipos de dados de data e hora que foram adicionados no SQL Server 2008.

Para obter mais informações sobre melhorias de data/hora, consulte Melhorias de Data e Hora (OLE DB) e Melhorias de Data e Hora (ODBC).

Para obter informações sobre aplicativos de exemplo que demonstram esse recurso, consulte exemplos de programação de dados do SQL Server.

Uso

As seções a seguir descrevem várias maneiras de usar os novos tipos de data e hora.

Usar Data como um tipo de dados distinto

A partir do SQL Server 2008, o suporte aprimorado para tipos de data/hora torna mais eficiente usar o tipo ODBC SQL_TYPE_DATE (SQL_DATE para aplicativos ODBC 2.0) e o tipo OLE DB DBTYPE_DBDATE.

Usar o tempo como um tipo de dados distinto

O OLE DB já tem um tipo de dados que contém apenas o tempo, DBTYPE_DBTIME, que tem uma precisão de 1 segundo. No ODBC, o tipo equivalente é SQL_TYPE_TIME (SQL_TIME para aplicativos ODBC 2.0).

O novo tipo de dados de tempo do SQL Server tem segundos fracionários precisos para 100 nanossegundos. Isso requer novos tipos no SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC). Aplicativos existentes gravados para usar horários sem segundos fracionários podem usar colunas de tempo(0). Os tipos de DBTYPE_TIME SQL_TYPE_TIME OLE DB e ODBC existentes e seus structs correspondentes devem funcionar corretamente, a menos que os aplicativos dependam do tipo retornado nos metadados.

Usar o tempo como um tipo de dados distinto com precisão de segundos fracionários estendidos

Alguns aplicativos, como controle de processo e aplicativos de fabricação, exigem a capacidade de lidar com dados de tempo com uma precisão de até 100 nanossegundos. Novos tipos para essa finalidade são DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC).

Usar Datetime com precisão de segundos fracionários estendidos

O OLE DB já define um tipo com uma precisão de até 1 nanossegundo. No entanto, esse tipo já é usado por aplicativos existentes do SQL Server e esses aplicativos têm uma expectativa de apenas 1/300 de uma segunda precisão. O novo datetime2(3) tipo não é diretamente compatível com o tipo de datetime existente. Se houver um risco de que isso afete o comportamento do aplicativo, os aplicativos devem usar um novo sinalizador DBCOLUMN para determinar o tipo de servidor real.

O ODBC também define um tipo com uma precisão de até 1 nanossegundo. No entanto, esse tipo já é usado por aplicativos existentes do SQL Server e esses aplicativos esperam apenas precisão de 3 milissegundos. O novo datetime2(3) tipo não é diretamente compatível com o tipo existente datetime . datetime2(3) tem uma precisão de um milissegundo e datetime tem uma precisão de 1/300 de segundo. No ODBC, os aplicativos podem determinar qual tipo de servidor está em uso com o campo de descritor SQL_DESC_TYPE_NAME. Portanto, o tipo existente SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP para aplicativos ODBC 2.0) pode ser usado para ambos os tipos.

Usar Datetime com precisão e fuso horário de segundos fracionários estendidos

Alguns aplicativos exigem valores de datetime com informações de fuso horário. Isso é compatível com os novos tipos DBTYPE_DBTIMESTAMPOFFSET (OLE DB) e SQL_SS_TIMESTAMPOFFSET (ODBC).

Usar dados data/hora/datetime/datetimeoffset com conversões de Client-Side consistentes com conversões existentes

O padrão ODBC descreve como as conversões entre os tipos de data, hora e carimbo de data/hora existentes funcionam. Elas são estendidas de maneira consistente para incluir conversões entre todos os tipos de data e hora introduzidos no SQL Server 2008.

Consulte Também

Recursos do SQL Server Native Client