日付 ODBC SQL データ型の識別子は次のとおりです。
SQL_TYPE_DATE
次の表に、ドライバーが日付 SQL データを変換できる ODBC C データ型を示します。 表の列と用語の詳細については、「 SQL から C データ型へのデータ変換を参照してください。
注
文字変換の場合、 BufferLength には null ターミネータのスペースを含める必要があります。 日付文字列は 10 文字 (yyyy-mm-dd) であるため、切り捨てを回避するには BufferLength が少なくとも 11 バイトである必要があります。
| C 型識別子 | Test | * TargetValuePtr | * StrLen_or_IndPtr | SQLSTATE |
|---|---|---|---|---|
| SQL_C_CHAR |
BufferLength> 文字バイト長 11 <= BufferLength<= 文字バイト長 BufferLength< 11 |
データ 切り捨てられたデータ 未定義 |
10 データの長さ (バイト単位) 未定義 |
なし 01004 22003 |
| SQL_C_WCHAR |
BufferLength> 文字の長さ 11 <= BufferLength<= 文字長 BufferLength< 11 |
データ 切り捨てられたデータ 未定義 |
10 文字単位のデータの長さ 未定義 |
なし 01004 22003 |
| SQL_C_BINARY | データのバイト長 <= BufferLength データのバイト長 >BufferLength |
データ 未定義 |
データの長さ (バイト単位) 未定義 |
なし 22003 |
| SQL_C_TYPE_DATE | なし1 | データ | 63 | なし |
| SQL_C_TYPE_TIMESTAMP | なし1 | データ2 | 163 | なし |
1 この変換では BufferLength の値は無視されます。 ドライバーは、*TargetValuePtr のサイズが C データ型のサイズであることを前提としています。
2 ドライバーは、タイムスタンプ構造体の時刻フィールドを 0 に設定します。
3 これは、対応する C データ型のサイズです。
ドライバーが日付 SQL データを文字 C データに変換すると、結果の文字列は "yyyy-mm-dd" 形式になります。 この形式は、Windows の国/地域設定の影響を受けません。