C から SQL へ: 年月の間隔

年月間隔 ODBC C データ型の識別子は次のとおりです。

SQL_C_INTERVAL_MONTH SQL_C_INTERVAL_YEAR SQL_C_INTERVAL_YEAR_TO_MONTH

次の表は、年月間隔 C データの変換先となる ODBC SQL データ型を示しています。 テーブル内の列と用語の詳細については、「 C から SQL データ型へのデータの変換」を参照してください。

SQL 型識別子 テスト SQLSTATE
SQL_CHAR[a]

SQL_VARCHAR[a]

SQL_LONGVARCHAR[a]
列のバイト長 >= 文字バイト長

列のバイト長 < 文字バイト長[a]

データ値が有効な間隔リテラルではありません
該当なし

22001

22015
SQL_WCHAR[a]

SQL_WVARCHAR[a]

SQL_WLONGVARCHAR[a]
列の文字長 >= データの文字長

列の文字の長さ < データの文字長[a]

データ値が有効な間隔リテラルではありません
該当なし

22001

22015
SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]

SQL_NUMERIC[b]

SQL_DECIMAL[b]
単一フィールド間隔を変換しても、数字全体が切り捨てられませんでした

変換の結果、数字全体が切り捨てられました
該当なし

22003
SQL_INTERVAL_MONTH

SQL_INTERVAL_YEAR

SQL_INTERVAL_YEAR_TO_MONTH
データ値は、フィールドを切り捨てずに変換されました

変換中にデータ値の 1 つ以上のフィールドが切り捨てられました
該当なし

22015

[a] すべての C 間隔データ型を文字データ型に変換できます。

[b] 間隔構造の型フィールドが 1 つのフィールド (SQL_YEARまたはSQL_MONTH) である場合、間隔 C 型は、正確な数値 (SQL_TINYINT、SQL_SMALLINT、SQL_INTEGER、SQL_BIGINT、SQL_DECIMAL、またはSQL_NUMERIC) に変換できます。

間隔 C 型の既定の変換は、対応する年月間隔 SQL 型に変換されます。

ドライバーは、間隔 C データ型からデータを変換するときに、長さ/インジケーター値を無視し、データ バッファーのサイズが間隔 C データ型のサイズであると見なします。 長さ/インジケーター値は、SQLPutDataStrLen_or_Ind 引数と、SQLBindParameterStrLen_or_IndPtr 引数で指定されたバッファーに渡されます。 データ バッファーは、SQLPutDataDataPtr 引数と SQLBindParameterParameterValuePtr 引数で指定されます。