Aprimoramentos de data/hora
Este tópico descreve o suporte ao SQL Server Native Client para os novos tipos de dados de data e hora que foram incluídos no SQL Server 2008.
Para obter mais informações sobre aprimoramentos de data/hora, consulte Aprimoramentos de data/hora (OLE DB) e Aprimoramentos de data/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ários modos de usar os novos tipos de dados date e time.
Usar Date como um tipo de dados distinto
A partir do SQL Server 2008, o suporte avançado para tipos de data/hora torna-o mais eficiente para usar o tipo de ODBC SQL_TYPE_DATE (SQL_DATE para aplicativos ODBC 2.0) e o tipo de OLE DB DBTYPE_DBDATE.
Usar Time como um tipo de dados distinto
O OLE DB já tem um tipo de dados que apenas contém a hora, DBTYPE_DBTIME, que tem uma precisão de 1 segundo. Em ODBC, o tipo equivalente é SQL_TYPE_TIME (SQL_TIME para aplicativos ODBC 2.0).
O novo tipo de dados time do SQL Server tem frações de segundos precisas para 100 nanossegundos. Isto exige novos tipos no SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC). Os aplicativos existentes gravados para usar horas sem frações de segundos podem usar colunas time(0). Os tipos DBTYPE_TIME do OLE DB e SQL_TYPE_TIME do ODBC e suas estruturas correspondentes devem funcionar corretamente, a menos que os aplicativos confiem no tipo retornado no metadados.
Usar Time como um tipo de dados distinto com precisão estendida de frações de segundos
Alguns aplicativos, como controle de processo e fabricação, requerem o recurso para controlar dados de hora com uma precisão de até 100 nanossegundos. Os novos tipos para esta finalidade são DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC).
Usar Datetime com precisão estendida de frações de segundos
O OLE DB já define um tipo com uma precisão de até 1 nanossegundo. Porém, este tipo já é usado por aplicativos SQL Server e tais aplicativos têm uma expectativa de apenas 1/300 de uma segunda precisão. O novo tipo datetime2(3) não é diretamente compatível com o tipo datetime existente. Se houver um risco que isto afetará o comportamento do aplicativo, os aplicativos deverão 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. Porém, esse tipo já é usado pelos aplicativos SQL Server existentes e tais aplicativos esperam uma precisão de apenas 3 milissegundos. O novo tipo datetime2(3) não é diretamente compatível com o tipo datetime existente. datetime2(3) tem uma precisão de um milissegundo e datetime tem uma precisão de 1/300 de um segundo. No ODBC, os aplicativos podem determinar qual tipo de servidor está em uso com o campo do 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 estendida de frações de segundos e fuso horário
Alguns aplicativos exigem valores de datetime com informações de fuso horário. Isto é aceito pelos novos tipos DBTYPE_DBTIMESTAMPOFFSET (OLE DB) e SQL_SS_TIMESTAMPOFFSET (ODBC).
Usar os dados Date/Time/Datetime/Datetimeoffset com conversões do lado do cliente consistentes com as conversões existentes
O padrão de ODBC descreve como conversões entre os tipos existentes de data, hora e carimbo de data/hora funcionam. Esses tipos são estendidos de uma maneira consistente para incluir conversões entre todos os tipos de data e hora inseridos no SQL Server 2008.