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

本文关键字:00AM 包含 数据类型 Server 2012 日期 SQL | 更新日期: 2023-09-27 18:00:52

我有一个MVC CRUD站点,它有一个Date Approved Textbox。创建新条目时,它会在SQL服务器中以"dd-MM-yyyy"的形式正确存储。当我想更新条目时,所需日期文本框包含日期AND 12:00:00AM。我猜这是因为SQL Server是一个日期数据类型和。Net是一个DateTime。知道如何摆脱12:00:00AM吗?

失败的尝试。。。

我试着把它添加到我的视图模型中

[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();
    }
});

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

您可以使用ToShortDateString:添加另一个属性

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

或者简单地将文本框值设置为ShortDateString以保持您的绑定

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") 
                              });

从上面扩展Jonesy答案。

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

Parse不会破坏插入SQL的数据,希望它能有所帮助。