Как правильно преобразовать дату и время в SQL в дату и время в C #? - PullRequest
1 голос
/ 06 января 2011

У меня есть данные, хранящиеся в базе данных SQL, которые я пытаюсь прочитать в приложении ASP.NET MVC.Я могу получить данные просто отлично - но datetime не переводится ни во что полезное.

Вот что у меня есть (некоторые данные отредактированы как «...»):

    public JsonResult GetXYZByStatusJson()
    {
        var sqlConn = new SqlConnection(...);
        var command = new SqlCommand("...", sqlConn);

        command.CommandType = CommandType.StoredProcedure;
        command.Parameters.AddWithValue("@status", 0);

        sqlConn.Open();
        var sqlResult = command.ExecuteReader();

        var collection = new Collection<Object>();
        while (sqlResult.Read()) 
        {
            collection.Add(new XYZ(
                ...
                Convert.ToDateTime(sqlResult["DateSent"]),
                Convert.ToDateTime(sqlResult["DateDue"]),
                ...
                ));
        }

        sqlResult.Close();
        sqlConn.Close();

        return Json(collection);
    }

Полученный JSON отформатирован нормально, но даты выглядят как "\ / Date (1294120800000) \ /"

Как правильно преобразовать дату и время SQL в C # DateTime?Использование .ToString () не оказывает никакого влияния.

Ответы [ 2 ]

2 голосов
/ 06 января 2011

Нет ничего плохого в преобразовании между Sql Server и C #.

Проблема в том, как JsonResult форматирует строку.

Следующий вопрос SO показывает, как вы можете обработать его на стороне клиента: Как мне отформатировать дату Microsoft JSON?

Другой способ - создать собственную альтернативу JsonResult

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

Если это SQL Server, sqlResult ["DateSent"]. ToString () выдаст вам что-то вроде этого: "6/9/1999 12:00:00 AM, 15.08.1999 12:00:00 AM""

Используйте встроенные строковые методы (.IndexOf (), .Remove () и т. Д.) Или создайте свой собственный, чтобы проанализировать все, что вам нужно, из этой строки.

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