从 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 国家/地区设置的影响。