次の方法で共有


SQL から C へ: 日付

日付 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 の国/地域設定の影響を受けません。