datetime 数据类型转换 (ODBC)

以下转换或者已由 ODBC 定义,或者是 ODBC 的一致扩展。每个访问接口提供的转换由该访问接口所服务的社区决定,因此,各个访问接口之间通常不一致。方括号中的值是可选的。

  • 日期时间字符串的格式为 'yyyy-mm-dd[ hh:mm:ss[.9999999][ 加/减 hh:mm]]'

  • 时间字符串的格式为 'hh:mm:ss[.9999999]'

  • 日期字符串的格式为 'yyyy-mm-dd'

从字符串转换允许灵活处理空格和字段宽度。有关详细信息,请参阅ODBC 日期/时间数据类型支持改进中的“数据格式:字符串和文字”部分。

下面是一般的转换规则:

  • 如果不存在时间但接收方可以存储时间,则将时间设置为零。

  • 如果不存在日期但接收方可以存储日期,则使用当前日期。

  • 如果客户端正在使用的数据类型中不存在时区,但服务器可以存储时区,则在客户端时区中存储日期。请注意,此行为与服务器行为不同。

  • 如果服务器类型中不存在时区,但客户端类型具有时区,则先将时间转换为 UTC,再将其存储到服务器。

  • 如果存在时间但接收方无法存储时间,则忽略时间部分。

  • 如果存在日期但接收方无法存储日期,则忽略日期部分。

  • 如果在从 C 转换到 SQL 时截断了秒或秒的小数部分,则生成带有 SQLSTATE 22008 的诊断记录和消息“日期时间字段溢出”。

  • 如果在从 SQL 转换到 C 时截断了秒或秒的小数部分,则生成带有 SQLSTATE 01S07 的诊断记录和消息“截断小数部分”。

本节内容

  • 由 C 转换为 SQL
    列出了在从 C 类型转换到 SQL Server 日期/时间类型时要考虑的问题。

  • 由 SQL 转换为 C
    列出了在从 SQL Server 日期/时间类型转换到 C 类型时要考虑的问题。