分享方式:


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]

資料值不是有效的間隔常值
n/a

22001

22015
SQL_WCHAR[a]

SQL_WVARCHAR[a]

SQL_WLONGVARCHAR[a]
資料行字元長度 > = 資料的字元長度

資料行字元長度 < 資料字元長度[a]

資料值不是有效的間隔常值
n/a

22001

22015
SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]

SQL_NUMERIC[b]

SQL_DECIMAL[b]
單一欄位間隔的轉換不會導致截斷整個數位

轉換導致截斷整個數位
n/a

22003
SQL_INTERVAL_MONTH

SQL_INTERVAL_YEAR

SQL_INTERVAL_YEAR_TO_MONTH
資料值已轉換,而不會截斷任何欄位

轉換期間截斷了一或多個資料值欄位
n/a

22015

[a] 所有 C 間隔資料類型都可以轉換成字元資料類型。

[b] 如果間隔結構中的類型欄位使間隔是單一欄位(SQL_YEAR或SQL_MONTH),則間隔 C 類型可以轉換成任何確切的數位(SQL_TINYINT、SQL_SMALLINT、SQL_INTEGER、SQL_BIGINT、SQL_DECIMAL或SQL_NUMERIC)。

間隔 C 類型的預設轉換是對應年月間隔 SQL 類型。

驅動程式會忽略從間隔 C 資料類型轉換資料時的長度/指標值,並假設資料緩衝區的大小是間隔 C 資料類型的大小。 長度/指標值會在 SQLPutData 中的 StrLen_or_Ind 引數和 SQLBindParameter 中以 StrLen_or_IndPtr 引數 指定的 緩衝區中傳遞 資料緩衝區是以 SQLPutData 中的 DataPtr 引數和 SQLBindParameter 中的 ParameterValuePtr 引數來指定