SQL Server 2012 Date数据类型包含12:00:00 AM

时间:2014-04-30 13:24:09

标签: c# sql-server asp.net-mvc

我有一个MVC CRUD站点,它有一个Date Approved Textbox。创建新条目时,它会正确存储为" dd-MM-yyyy"在SQL Sever中。当我想更新条目时,“必需日期”文本框包含日期和12:00:00 AM。我猜测这是因为SQL Server是日期数据类型而.Net是DateTime。知道怎么摆脱凌晨12点00分吗?

尝试失败......

我已尝试将其添加到我的viewmodel

[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage="Required")]
[DataType(DataType.Date)]
[Display(Name="Date Requested")]
public DateTime?  Date_Requested { get; set; }

还有...

string test = Convert.ToDateTime(model.Date_Requested).ToString;

修改 html文本框

@Html.TextBoxFor(model => model.Date_Requested,new {@class="datepicker" })

编辑 JQuery DatePicker

$(".datepicker").datepicker({
    onSelect: function () {
        $(this).valid();
    }
});

3 个答案:

答案 0 :(得分:2)

您可以使用ToShortDateString添加其他媒体资源:

public string DateRequestedShortDate 
{ 
    get 
    {
        return Date_Requested == null ? "" : Date_Requested.ToShortDateString();
    }
}

或者只是将文本框值设置为ShortDateString以保持绑定

答案 1 :(得分:1)

TextBoxFor不尊重格式属性(不确定这是出于预期还是错误)。您可以使用EditorFor

@Html.EditorFor(model => model.Date_Requested,new {@class="datepicker" })

或在TextBoxFor中设置格式:

@Html.TextBoxFor(model => model.Date_Requested,
                          new {
                               @class="datepicker", 
                               @Value = Model.Date_Requested.ToString("MM-dd-yyyy") 
                              });

答案 2 :(得分:0)

从上面扩展琼斯的回答。

public string DateRequestedShortDate 
{ 
get 
{
    return Date_Requested == null ? "" : Date.Parse(Date_Requested).ToShortDateString();
}
}

Parse不会搞砸插入SQL的数据,希望它有所帮助。