Mejoras de fecha y hora
En este tema se describe la compatibilidad agregada a SQL Server Native Client 10.0 para los nuevos tipos de datos de fecha y hora introducidos en SQL Server 2008.
Para obtener más información acerca de las mejoras de fecha y hora, vea Mejoras de fecha y hora (OLE DB) y Mejoras en los tipos de datos de fecha y hora (ODBC).
Para obtener información acerca de las aplicaciones de ejemplo que muestran esta característica, vea Consideraciones para instalar ejemplos y bases de datos de ejemplo de SQL Server.
Uso
En las secciones siguientes se describen varios modos de usar los nuevos tipos de fecha y hora.
Usar date como un tipo de datos distinto
A partir de SQL Server 2008, la compatibilidad mejorada con los tipos de fecha y hora hace que el uso del tipo SQL_TYPE_DATE de ODBC (SQL_DATE en aplicaciones ODBC 2.0) y el tipo DBTYPE_DBDATE de OLE DB resulte más eficaz.
Usar time como un tipo de datos distinto
OLE DB ya tiene un tipo de datos que sólo contiene la hora, DBTYPE_DBTIME, que ofrece una precisión de 1 segundo. En ODBC, el tipo equivalente es SQL_TYPE_TIME (SQL_TIME para aplicaciones ODBC 2.0).
El nuevo tipo de datos de hora de SQL Server tiene una precisión de 100 nanosegundos para las fracciones de segundo, por lo que se requieren nuevos tipos en SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) y SQL_SS_TIME2 (ODBC). Las aplicaciones existentes escritas para utilizar horas sin fracciones de segundo pueden utilizar columnas time(0). Los tipos existentes DBTYPE_TIME de OLE DB y SQL_TYPE_TIME de ODBC y sus estructuras correspondientes deben funcionar correctamente, a menos que las aplicaciones se basen en el tipo devuelto en los metadatos.
Usar time como un tipo de datos distinto con una precisión ampliada para las fracciones de segundo
Algunas aplicaciones, como las aplicaciones de fabricación y control de procesos, exigen la capacidad de controlar los datos de hora con una precisión de hasta 100 nanosegundos. Para este propósito, se han introducido los nuevos tipos DBTYPE_DBTIME2 (OLE DB) y SQL_SS_TIME2 (ODBC).
Usar el tipo datetime con una precisión ampliada para las fracciones de segundo
OLE DB ya define un tipo con una precisión de hasta 1 nanosegundo. Sin embargo, este tipo ya se utiliza en aplicaciones SQL Server existentes y estas aplicaciones tienen una expectativa de tan sólo 1/300 de precisión en segundos. El nuevo tipo datetime2(3) no es directamente compatible con el tipo de fecha y hora existente. Si existe el riesgo de que esto afecte al comportamiento de la aplicación, las aplicaciones deben utilizar un nuevo marcador DBCOLUMN para determinar el tipo de servidor real.
ODBC también define un tipo con una precisión de hasta 1 nanosegundo. Sin embargo, este tipo ya se utiliza en aplicaciones SQL Server existentes y tales aplicaciones sólo esperan una precisión de 3 milisegundos. El nuevo tipo datetime2(3) no es directamente compatible con el tipo datetime existente. datetime2(3) tiene una precisión de un milisegundo y datetime tiene una precisión de 1/300 de segundo. En ODBC, las aplicaciones pueden determinar qué tipo de servidor se está usando con el campo descriptor SQL_DESC_TYPE_NAME. Por lo tanto, el tipo SQL_TYPE_TIMESTAMP existente (SQL_TIMESTAMP para aplicaciones ODBC 2.0) puede utilizarse con ambos tipos.
Usar el tipo datetime con una precisión ampliada para las fracciones de segundo y la zona horaria
Algunas aplicaciones requieren valores de fecha y hora con información de zona horaria. Los nuevos tipos DBTYPE_DBTIMESTAMPOFFSET (OLE DB) y SQL_SS_TIMESTAMPOFFSET (ODBC) admiten este uso.
Usar datos de tipo date/time/datetime/datetimeoffset con conversiones de cliente coherentes con las conversiones existentes
El estándar ODBC describe cómo funcionan las conversiones entre los tipos date, time y timestamp existentes. Estos tipos se han ampliada de modo coherente para incluir conversiones entre todos los tipos de fecha y hora introducidos en SQL Server 2008.