2013-04-15 7 views
2

У меня есть дата, сохраненная в формате DD/MM/YYYY из плоского файла. «20/04/2013»Ошибка преобразования даты из строки

Когда я пытаюсь вставить его в базу данных SQL Server, он меняет значение на MM/DD/YYYY.

Так что, конечно, в течение месяца 20 и мой код не работает. Как я могу обойти это?

Я пробовал такие вещи, и мне не повезло.

SELECT CONVERT(datetime, CONVERT(varchar, '20/04/2013', 101)) 
+2

101 является код формата США, вы точно сообщая обращенного использовать MM/DD/YYYY - Вы должны использовать 103, который это DD/MM/YYYY. Подробнее о кодах и конвертируйте коды по адресу: http://msdn.microsoft.com/en-us/library/ms187928.aspx –

ответ

2

просто сделать это непосредственно,

SELECT CONVERT(datetime, '20/04/2013', 103) 
+0

Спасибо, это сделал трюк! – Etienne

+0

приветствуется ': D' –

1

В SQL Server вы должны использовать опцию SET DATEFORMAT. (См. http://msdn.microsoft.com/en-us/library/ms189491.aspx).

В вашем случае, вам нужно будет выполнить следующую команду перед выполнением выше утверждение Select-:

SET DATEFORMAT dmy 

В качестве альтернативы, можно глобально изменить настройки для сервера DATEFORMAT.

0

Определение и использование Функция CONVERT() является общей функцией, которая преобразует выражение одного типа данных в другое.

Функция CONVERT() может использоваться для отображения данных даты и времени в разных форматах.

выберите новообращенный (DateTime, '20/04/2013' , 103) enter link description here

Смежные вопросы