C a SQL: Intervalos de mes y año
Los identificadores para los tipos de datos ODBC C de intervalo de año son:
SQL_C_INTERVAL_MONTH SQL_C_INTERVAL_YEAR SQL_C_INTERVAL_YEAR_TO_MONTH
En la tabla siguiente se muestran los tipos de datos SQL de ODBC a los que se pueden convertir los datos de intervalo de año y mes de C. Para obtener una explicación de las columnas y los términos de la tabla, vea Convertir datos de C a tipos de datos SQL.
Identificador de tipo de SQL | Prueba | SQLSTATE |
---|---|---|
SQL_CHAR[a] SQL_VARCHAR[a] SQL_LONGVARCHAR[a] |
Longitud de >bytes de columna = Longitud de bytes de caracteres Longitud de bytes < de columna Longitud de bytes de caracteres[a] El valor de datos no es un literal de intervalo válido |
N/D 22001 22015 |
SQL_WCHAR[a] SQL_WVARCHAR[a] SQL_WLONGVARCHAR[a] |
Longitud de caracteres de columna >= Longitud de caracteres de datos Longitud de caracteres de columna Longitud de caracteres < de datos[a] El valor de datos no es un literal de intervalo válido |
N/D 22001 22015 |
SQL_TINYINT[b] SQL_SMALLINT[b] SQL_INTEGER[b] SQL_BIGINT[b] SQL_NUMERIC[b] SQL_DECIMAL[b] |
La conversión de un intervalo de un solo campo no dio lugar a un truncamiento de dígitos enteros La conversión dio lugar a un truncamiento de dígitos enteros |
N/D 22003 |
SQL_INTERVAL_MONTH SQL_INTERVAL_YEAR SQL_INTERVAL_YEAR_TO_MONTH |
El valor de datos se convirtió sin truncamiento de ningún campo Se truncaron uno o más campos del valor de datos durante la conversión |
N/D 22015 |
[a] Todos los tipos de datos de intervalo de C se pueden convertir en un tipo de datos de caracteres.
[b] Si el campo de tipo de la estructura de intervalo es tal que el intervalo es un solo campo (SQL_YEAR o SQL_MONTH), el tipo de intervalo C se puede convertir en cualquier numérico exacto (SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_DECIMAL o SQL_NUMERIC).
La conversión predeterminada de un tipo de intervalo C es al tipo SQL de intervalo de año y mes correspondiente.
El controlador omite el valor de longitud/indicador al convertir datos del tipo de datos interval C y supone que el tamaño del búfer de datos es el tamaño del tipo de datos de intervalo C. El valor de longitud/indicador se pasa en el argumento StrLen_or_Ind en SQLPutData y en el búfer especificado con el argumento StrLen_or_IndPtr en SQLBindParameter. El búfer de datos se especifica con el argumento DataPtr en SQLPutData y el argumento ParameterValuePtr en SQLBindParameter.