从 SQL 到 C:日期

日期 ODBC SQL 数据类型的标识符为:

SQL_TYPE_DATE

下表显示了可将日期 SQL 数据转换为的 ODBC C 数据类型。 有关表中的列和术语的说明,请参阅 将数据从 SQL 转换为 C 数据类型

C 类型标识符 测试 *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 None[a] 数据 6[c] 不适用
SQL_C_TYPE_TIMESTAMP None[a] Data[b] 16[c] 不适用

[a] 对于此转换,将忽略 BufferLength 的值。 驱动程序假定 *TargetValuePtr 的大小是 C 数据类型的大小。

[b] 时间戳结构的时间字段设置为零。

[c] 这是相应 C 数据类型的大小。

当日期 SQL 数据转换为字符 C 数据时,生成的字符串采用“yyyy-mm-dd”格式。 此格式不受 Windows 国家/地区设置的影响。