2013-02-26 4 views
0

Я пытаюсь загрузить данные из файла в SQL Server Express, используя следующую команду:Тип ошибки преобразования данных DBTYPE_DBDATE датировать

BULK INSERT Clients_test FROM 'c:\clints_aa.csv' 
    WITH (KEEPIDENTITY, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' 
) 

Но я получаю эту ошибку:

Msg 8114, Level 16, State 10, Line 2
Error converting data type DBTYPE_DBDATE to date.

Пример данных:

1,F,L,E,1950-12-18,x,-,z,6,k,r,4,1,N,1,m,,3,5,o,3,0,0,0,0,1,,,1900-01-01,1900-01-01,- 
2,O,L,F,1946-06-23,y,-,z,6,l,s,5,0,N,1,n,,1,7,p,1,0,1,1,0,4,,,1900-01-01,1900-01-01,- 

Столбцы, содержащие даты, являются 5-м и 2 перед последним столбцом.

ответ

0

При попытке вставить свои временные значения даты в виде строки, необходимо преобразовать их в DATETIME в T-SQL:

CONVERT('2013-02-26 16:51:23.767', GETDATE(), 126) 

Это использование обычной T-SQL, и не принимает во внимание объемная вставка. Если вы хотите использовать массовую вставку, это поможет, если бы у вас была Visual Studio Business Intelligence Development Studio. Для получения дополнительной информации см. http://msdn.microsoft.com/en-us/library/ms173767.aspx.

+0

Я загружаю данные из текстового файла, есть более 8000 записей, которые я не хочу изменять их руками. Или я должен добавить строку преобразования в мою инструкцию загрузки? – Andrey

+0

Вы можете загрузить Visual Studio Express для C# и/или Visual Basic и написать небольшую программу для чтения записей, а затем выполнить CONVERT в коде C#. Вот отличная статья: http://www.codeproject.com/Articles/361579/A-Beginners-Tutorial-for-Understanding-ADO-NET – Roger

+0

это не решение. Раньше я мог загружать одни и те же данные с одним полем, и он отлично загружался, но я добавляю еще одну строку с датой и начинаю забрасывать мне ошибку. – Andrey