Share via


datetime データ型の変更

ODBC 3.x では、日付、時刻、およびタイムスタンプの SQL データ型の識別子が、SQL_DATE、SQL_TIME、およびSQL_TIMESTAMP (ヘッダー ファイル 9、10、および 11) の #define のインスタンスを含む) から、SQL_TYPE_DATE、SQL_TYPE_TIME、およびSQL_TYPE_TIMESTAMP (ヘッダー ファイル 91 の #define のインスタンスを含む) に変更されました。 92、93)、それぞれ。 対応する C 型識別子は、それぞれ SQL_C_DATE、SQL_C_TIME、およびSQL_C_TIMESTAMP から SQL_C_TYPE_DATE、SQL_C_TYPE_TIME、およびSQL_C_TYPE_TIMESTAMP に変更されています。

ODBC 3.x の SQL datetime データ型に対して返される列サイズと 10 進数は、ODBC 2.x で返される有効桁数と小数点以下の桁数と同じです。 これらの値は、SQL_DESC_PRECISION および SQL_DESC_SCALE 記述子フィールドの値とは異なります。 (詳細については、列サイズ、小数点以下の桁数、転送オクテット長、および表示サイズを参照してください。)

これらの変更は、SQLDescribeColSQLDescribeParamSQLColAttributeSQLBindColSQLBindParameterSQLGetDataSQLColumnsSQLGetTypeInfoSQLProcedureColumnsSQLStatistics、および SQLSpecialColumns に影響します。

次の表は、SQLBindColSQLGetDataTargetType 引数、または SQLBindParameterValueType 引数に入力された日付、時刻、およびタイムスタンプの C データ型のマッピングを ODBC 3.x ドライバー マネージャーがどのように実行するかを示しています。

データの種類

入力されたコード
2.x アプリ

2.x ドライバー
2.x アプリ

3.x ドライバー
3.x アプリ

2.x ドライバー
3.x アプリ

3.x ドライバー
SQL_C_DATE (9) マッピングなし SQL_C_TYPE_DATE (91) マッピングなし[1] SQL_C_TYPE_DATE (91)
SQL_C_TYPE_DATE (91) エラー (DM から) エラー (DM から) SQL_C_DATE (9) マッピングなし[2]
SQL_C_TIME (10) マッピングなし SQL_C_TYPE_TIME (92) マッピングなし[1] SQL_C_TYPE_TIME (92)
SQL_C_TYPE_TIME (92) エラー (DM から) エラー (DM から) SQL_C_TIME (10) マッピングなし[2]
SQL_C_TIMESTAMP (11) マッピングなし SQL_C_TYPE_TIMESTAMP (93) マッピングなし[1] SQL_C_TYPE_TIMESTAMP (93)
SQL_C_TYPE_TIMESTAMP (93) エラー (DM から) エラー (DM から) SQL_C_TIMESTAMP (11) マッピングなし[2]

[1] この結果、ODBC 2.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

[2] この結果、ODBC 3.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

次の表は、ODBC 3.x ドライバー マネージャーが、SQLBindParameterParameterType 引数または SQLGetTypeInfoDataType 引数に入力された日付、時刻、およびタイムスタンプ SQL データ型のマッピングをどのように実行するかを示しています。

データの種類

入力されたコード
2.x アプリ

2.x ドライバー
2.x アプリ

3.x ドライバー
3.x アプリ

2.x ドライバー
3.x アプリ

3.x ドライバー
SQL_DATE (9) マッピングなし SQL_TYPE_DATE (91) マッピングなし[1] SQL_TYPE_DATE (91)
SQL_TYPE_DATE (91) エラー (DM から) エラー (DM から) SQL_DATE (9) マッピングなし[2]
SQL_TIME (10) マッピングなし SQL_TYPE_TIME (92) マッピングなし[1] SQL_TYPE_TIME (92)
SQL_TYPE_TIME (92) エラー (DM から) エラー (DM から) SQL_TIME (10) マッピングなし[2]
SQL_TIMESTAMP (11) マッピングなし SQL_TYPE_TIMESTAMP (93) マッピングなし[1] SQL_TYPE_TIMESTAMP (93)
SQL_TYPE_TIMESTAMP (93) エラー (DM から) エラー (DM から) SQL_TIMESTAMP (11) マッピングなし[2]

[1] この結果、ODBC 2.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。

[2] この結果、ODBC 3.x ドライバーを使用する ODBC 3.x アプリケーションでは、カタログ関数によって返される結果セットで返される日付、時刻、またはタイムスタンプ コードを使用できます。