Преобразование строки в дату - PullRequest
1 голос
/ 07 января 2011

Я запрашиваю веб-сервис, который возвращает дату в следующем формате: чт янв. 06 12:17:19 CST 2011

Мне нужно преобразовать его в значение даты и времени, совместимое с SQL Server 2008. Любойидеи?

1 Ответ

0 голосов
/ 07 января 2011

Во-первых, можете ли вы попросить разработчика веб-службы вернуть дату и время, которые немного более стандартизированы? Желательно UTC или что-то в этом роде?

Если нет, вы можете сделать это прямо в SQL Server, если хотите. Вы можете использовать подстроки и несколько предположений, чтобы получить следующее преобразование:

DECLARE @date nvarchar(50)
SET @date = 'Thu Jan 06 12:17:19 CST 2011'

PRINT @date

PRINT cast(right(@date, 4) + '/' + 
    substring(@date, 5, 3) + '/' + 
    substring(@date, 9, 2) + ' ' +
    substring(@date, 12, 8) as datetime)

Предполагается, что месяц всегда будет в трехзначном формате. Обратной стороной всего этого является часть CST - если время, которое они возвращают, отличается от вашего часового пояса, время недействительно.

Выполнение этого вернет:

Thu Jan 06 12:17:19 CST 2011
2011/01/06 12:17:19
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...