SQL Server 2008: bcp_sendrow, проблема: неверный формат времени - PullRequest
0 голосов
/ 04 августа 2009

У меня возникает проблема «Неверный формат времени», когда я пытаюсь использовать функции bcp (bcp_sendrow / bind и т. Д.) Для вставки в таблицу, имеющую столбец datetime. таким образом, в соответствии с примерами в Google, я заполнил структуру DBDATETIME, например: если бы я хотел заполнить 3 августа 2009 года, ровно в 8 утра по местному времени, я бы заполнил членов структуры следующим образом:

dtdays = 40026 (число дней с 19000101) и dttime = 28800000 (ноль миллисекунд с полуночи)

(также связав переменную как SQLDATETIME) если dttime имеет ширину 7 цифр (или меньше), тогда bcp преуспевает (но, очевидно, с неправильным значением времени (часть даты в порядке))

как мне с этим разобраться? Я пробовал datetime2 / время и т. Д., Но ничего не помогло. Пожалуйста, помогите, все советы / идеи наиболее ценятся. (Я использую Sql server 2008 и (ODBC) sql собственный клиент 10.0)

спасибо!

1 Ответ

0 голосов
/ 05 августа 2009

не берите в голову .. получил это наконец (вроде) -DBDATETIME :: dttime (число миллисекунд с начала дня) нужно РАЗДЕЛИТЬ на 3.333333 .. Таким образом, вы получите самое близкое значение, чтобы представить свое время. (ширина поля составляет всего 7 цифр) .. это, вероятно, связано с тем, что тип datetime может представлять только 1/3 секунды. точно .... В любом случае, я пытался использовать datetime2 с ODBC BCP API, но не мог заставить часть времени работать пожалуйста, дайте мне знать, если кто-нибудь найдет лучший способ спасибо!

...