TSQL: конвертировать varchar 'dd / mm / yy' в DATETIME - PullRequest
1 голос
/ 29 марта 2012

Глупое стороннее программное обеспечение, которое мы используем, хранит datetime как varchar по какой-то старой причине, и мне нужно проанализировать его как sql datetime.Проблема в том, что когда строка в формате mm / dd / yy в обычном формате CAST (), поскольку datetiem работает нормально, но мои данные отформатированы как dd / mm / yy, а CAST выдает

преобразованиеТип данных varchar для типа данных datetime привел к значению вне допустимого диапазона.

исключение.Советы по работе с CONVERT или CAST без использования RIGHT () / LEFT () и т. Д.

Спасибо

1 Ответ

1 голос
/ 29 марта 2012

Одним из вариантов будет использование параметра SET DATEFORMAT в SQL Server перед выполнением преобразований.например,

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO

DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...