Compartir a través de


Cambia el tipo de datos de fecha y hora

En ODBC 3.x, los identificadores para los tipos de datos SQL de fecha, hora y marca de tiempo han cambiado de SQL_DATE, SQL_TIME y SQL_TIMESTAMP (con instancias de #define en el archivo de encabezado de 9, 10 y 11) a SQL_TYPE_DATE, SQL_TYPE_TIME y SQL_TYPE_TIMESTAMP (con instancias de #define en el archivo de encabezado de 91, 92 y 93), respectivamente. Los identificadores de tipo C correspondientes han cambiado de SQL_C_DATE, SQL_C_TIME y SQL_C_TIMESTAMP a SQL_C_TYPE_DATE, SQL_C_TYPE_TIME y SQL_C_TYPE_TIMESTAMP, respectivamente.

El tamaño de columna y los dígitos decimales devueltos para los tipos de datos de fecha y hora SQL en ODBC 3.x son los mismos que la precisión y la escala devueltas para ellos en ODBC 2.x. Estos valores son diferentes de los valores de los campos del descriptor SQL_DESC_PRECISION y SQL_DESC_SCALE. (Para obtener más información, consulte Tamaño de columna, Dígitos decimales, Longitud de octeto de transferencia y Tamaño de pantalla).

Estos cambios afectan a SQLDescribeCol, SQLDescribeParam y SQLColAttribute; SQLBindCol, SQLBindParameter y SQLGetData; y SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics y SQLSpecialColumns.

La siguiente tabla muestra cómo el Administrador de controladores ODBC 3.x realiza la asignación de los tipos de datos C de fecha, hora y marca de tiempo introducidos en los argumentos TargetType de SQLBindCol y SQLGetData o en el argumento ValueType de SQLBindParameter.

Tipo de datos

código escrito
Aplicación 2.x a

Controlador 2.x
Aplicación 2.x a

Controlador 3.x
Aplicación 3.x a

Controlador 2.x
Aplicación 3.x a

Controlador 3.x
SQL_C_DATE (9) Sin asignación SQL_C_TYPE_DATE (91) Sin asignación[1] SQL_C_TYPE_DATE (91)
SQL_C_TYPE_DATE (91) Error (de DM) Error (de DM) SQL_C_DATE (9) Sin asignación[2]
SQL_C_TIME (10) Sin asignación SQL_C_TYPE_TIME (92) Sin asignación[1] SQL_C_TYPE_TIME (92)
SQL_C_TYPE_TIME (92) Error (de DM) Error (de DM) SQL_C_TIME (10) Sin asignación[2]
SQL_C_TIMESTAMP (11) Sin asignación SQL_C_TYPE_TIMESTAMP (93) Sin asignación[1] SQL_C_TYPE_TIMESTAMP (93)
SQL_C_TYPE_TIMESTAMP (93) Error (de DM) Error (de DM) SQL_C_TIMESTAMP (11) Sin asignación[2]

[1] Como resultado, una aplicación ODBC 3.x que trabaje con un controlador ODBC 2.x puede usar los códigos de fecha, hora o marca de tiempo devueltos en los conjuntos de resultados devueltos por las funciones de catálogo.

[2] Como resultado de esto, una aplicación ODBC 3.x que trabaje con un controlador ODBC 3.x puede usar los códigos de fecha, hora o marca de tiempo devueltos en los conjuntos de resultados devueltos por las funciones de catálogo.

La siguiente tabla muestra cómo el Administrador de controladores ODBC 3.x realiza la asignación de los tipos de datos SQL de fecha, hora y marca de tiempo introducidos en el argumento ParameterType de SQLBindParameter o en el argumento DataType de SQLGetTypeInfo.

Tipo de datos

código escrito
Aplicación 2.x a

Controlador 2.x
Aplicación 2.x a

Controlador 3.x
Aplicación 3.x a

Controlador 2.x
Aplicación 3.x a

Controlador 3.x
SQL_DATE (9) Sin asignación SQL_TYPE_DATE (91) Sin asignación[1] SQL_TYPE_DATE (91)
SQL_TYPE_DATE (91) Error (de DM) Error (de DM) SQL_DATE (9) Sin asignación[2]
SQL_TIME (10) Sin asignación SQL_TYPE_TIME (92) Sin asignación[1] SQL_TYPE_TIME (92)
SQL_TYPE_TIME (92) Error (de DM) Error (de DM) SQL_TIME (10) Sin asignación[2]
SQL_TIMESTAMP (11) Sin asignación SQL_TYPE_TIMESTAMP (93) Sin asignación[1] SQL_TYPE_TIMESTAMP (93)
SQL_TYPE_TIMESTAMP (93) Error (de DM) Error (de DM) SQL_TIMESTAMP (11) Sin asignación[2]

[1] Como resultado, una aplicación ODBC 3.x que trabaje con un controlador ODBC 2.x puede usar los códigos de fecha, hora o marca de tiempo devueltos en los conjuntos de resultados devueltos por las funciones de catálogo.

[2] Como resultado de esto, una aplicación ODBC 3.x que trabaje con un controlador ODBC 3.x puede usar los códigos de fecha, hora o marca de tiempo devueltos en los conjuntos de resultados devueltos por las funciones de catálogo.