Сохранение формата SQL DateTime при чтении из базы данных - PullRequest
0 голосов
/ 19 января 2010

У меня есть очень простой инструмент, который запускает хранимую процедуру из базы данных, помещает результаты в DataTable, а затем записывает DataTable в файл с помощью Response. Цель состоит в том, чтобы взять данные из таблицы на SQL Server, а затем использовать сторонний инструмент для загрузки их в базу данных Oracle.

Проблема, с которой я сталкиваюсь, заключается в том, что дата хранится в SQL Server следующим образом: 2011-05-01 00: 00: 00.000.

Однако, когда я получаю к нему доступ через мой SqlDataReader и помещаю его в свой DataTable, он заканчивается форматированием: 01.05.2011 12:00:00

Итак, я решил, что могу просто явно разобрать его как OracleDateTime. У меня есть следующий столбец в моей DataTable:

records.Columns.Add("Date", typeof(OracleDateTime));

Как и этот бит, в котором я читаю результаты:

row["Date"] = OracleDateTime.Parse(rdr["Date"].ToString());

Я также пробовал SqlDateTime для ударов, но в итоге получаю ту же неправильно отформатированную строку. Я просто хочу, чтобы он оставался таким же, как SQL возвращает его в запросе - как это можно сделать?

1 Ответ

3 голосов
/ 19 января 2010

Дата не сохраняется таким образом на сервере SQL; то, что вы видите в своих специальных запросах, - это преобразование из внутреннего числового хранилища в этот формат.

Когда вы читаете это, вы должны конвертировать rdr ["Date"] в DateTime.

Если вам нужен этот конкретный формат в вашем коде, вы должны отформатировать его, используя форматеры .NET при выводе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...