ASP.NET MVC: невозможно извлечь часы, минуты, секунды из базы данных SQL, они всегда показывают 12:00 - PullRequest
0 голосов
/ 26 марта 2019

Примечание : Я также ищу способ AddWithParameter, чтобы избежать риска внедрения SQL-кода, но я не уверен, как это сделать с DotNetNuke, так что это второй вопрос в этом вопросе.

Я сохраняю дату как C # DateTime в столбце базы данных SQL datetime. При получении этой даты я не могу получить информацию о чч: мм: сс, она всегда отображает 12:00, но день, месяц, год извлекаются и отображаются правильно.

Вот как я вставляю дату в SQL:

string sqlDateFormat = "yyyy-MM-dd HH:mm:ss.fff";               
string sqlInsertString = String.Format("INSERT INTO TABLE_NAME (Date_Column_Name) VALUES ({0})", thisDate?.ToString(sqlDateFormat)};

using (IDataContext ctx = DataContext.Instance())
{
    try
    {                  
        ctx.Execute(System.Data.CommandType.Text, 
        sqlInsertString);      
        success = true;                                                     
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
}

Вот как я получаю данные таблицы:

using (IDataContext ctx = DataContext.Instance())
{
    string sqlString = @"SELECT Date_Column_Name FROM Table_Name  WHERE ID = " + paramId;

    try
    {
        myTableDates = ctx.ExecuteQuery<TableModel> (System.Data.CommandType.Text, sqlString);
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine(ex.Message);
    }
}

Вот как я пытаюсь отобразить на экране:

<tbody>
    @foreach (TableModel tm in Model.AllTablesDates)
    {
        var dateVar = tm.Date == null ? "N/A" : 
        tm.Date.Value.ToString("dd-MMM-yyyy h:mm tt");

        <tr>
            <td data-title="Day">@dateVar</td>                        
        </tr>
    }
</tbody>
...