0

当我尝试使用 bcp 函数(bcp_sendrow/bind 等)插入具有日期时间列的表时,我遇到了“时间格式无效”的问题。因此,根据谷歌搜索的示例,我填充了一个 DBDATETIME 结构,例如:如果我想填充 2009 年 8 月 3 日,恰好是当地时间上午 8 点,我将填充结构成员,如下所示:

dtdays=40026(自 19000101 以来的天数)和 dttime = 28800000(自午夜以来的毫秒数)

(也将 var. 绑定为 SQLDATETIME)如果 dttime 为 7 位宽(或更小),则 bcp 成功(但显然时间值错误(日期部分没问题))

我该如何解决这个问题?我已经尝试过 datetime2 /time 等,但没有任何帮助。请帮助,所有建议/想法最受赞赏。(我使用的是 Sql server 2008 和 (ODBC) sql native client 10.0)

谢谢!

4

1 回答 1

0

没关系..最终得到它(有点)-DBDATETIME::dttime(从一天开始以来的毫秒数)需要除以 3.333333 .. 这样你就可以得到最接近的值来代表你的时间。(字段宽度只有 7 位宽)..这可能与 datetime 类型只能表示 1/3 秒有关。准确....无论如何,我尝试将 datetime2 与 ODBC bcp api 一起使用,但无法使时间部分起作用,如果有人找到更好的方法,请告诉我谢谢!

于 2009-08-05T08:22:29.510 回答