Существует ли формат строк для представления даты и времени, который SQL сможет анализировать и преобразовывать в другое смещение (например, EST -> UTC).Преобразование из глобализованного формата даты/времени (возможно, ISO8601) в тип даты и времени SQL Server
У меня есть строка от пользователя, таких как:
declare @p1 varchar(50);
declare @utcDateTime datetime;
set @p1 = "2009-06-26 14:30:00.000Z-4:00"; -- could be ISO8601
-- what do I do here to convert @p1?
set @utcDateTime = -- should be "2009-06-26 18:30:00.000"
Я хочу, чтобы иметь возможность преобразовать строку в его эквивалент UTC и сохранить его в поле даты и времени. Такой, что:
select @ utcDateTime
должен дать это:
"2009-06-26 18:30:00.000"
Другими словами, я хочу, чтобы хранить DateTime, который имеет значение «2009-06-26 18:30», учитывая первые строка.
Кроме того, мы должны считать, что сервер не находится в том же часовом поясе, что и пользователь (так что мы можем не только обнаружить DATEDIFF смещение (GetTime(), getutctime()).
Я попытался с помощью преобразования (...) и литые (... в качестве даты-времени), но не повезло.
есть ли способ сделать это в SQL Server 2005?
Что случилось с хранением данных в виде даты-времени? –
Данная строка не может быть преобразована; SQL Server дает эту ошибку: «Ошибка конверсии при преобразовании даты и времени из символьной строки». –
«Может быть ISO» или _is_ ISO? Лучше выбрать один формат. –