#c# #sql-server
#c# #sql-сервер
Вопрос:
У меня есть таблица, в которой хранится столбец DateTime в виде значений Utc «2019-03-12 09:42:14.39 00:00». Когда я пытаюсь извлечь значение и преобразовать его в DateTime с помощью функции Convert(), оно преобразует его обратно в мое местное время (мое системное время). Я использовал
DateTime.TryParse(dateTime, CultureInfo.InvariantCulture , DateTimeStyles.AdjustToUniversal, out dt)
Это отлично работает и сохраняет формат utc, но проблема в том, что он преобразует дату из «12-03-2019 09: 42:14» в «03-12-2019 09: 42:14». Есть ли лучший способ сделать это или как я могу исправить эту проблему?
Комментарии:
1. Этот код не является T-SQL. Вы на самом деле делаете это в SQL Server? Какое значение вы ожидаете при преобразовании
2019-03-12 09:42:14.39 00:00
вdatetime
? Я бы ожидал2019-03-12 09:42:14.390
, поскольку вdatetime
типе данных нет места для хранения часового пояса времени; таким образом, эта информация «потеряна».2. Это в SQLServer 2012. Я ожидаю 12-03-2019 09: 42: 14 в качестве выходных данных.
3. Тогда где вы это запускаете? Как я уже сказал, это не T-SQL.
4. Изменение тегов. Забыл добавить в первую очередь.
5. Если
12-03-2019 09:42:14
выполняется преобразование в03-12-2019 09:42:14
, звучит так, как будто кто-то используетstring
/varchar
для хранения значений даты и времени, и когда C # считывает `string/
varchar», он неявно считывается в формате с переключением месяца и дней на то, что они есть (не уверен,12-03
это 12 марта или 03 декабря). Если вы используетеstring
/varchar
, возникает ваша первая проблема.