如何在C#中没有小时部分的格式日期时间字段

时间:2015-11-17 17:50:07

标签: c# date datetime

我使用C#从MVC5中的文本框插入日期到数据库。我尝试只获得没有小时部分的日期,但它保存如下:10/10/2019 12:00:00 AM,当我只在文本框中输入10/10/2019。我如何格式化,所以保存它没有12:00:00 AM部分。我需要将变量作为Datetime。

这是日期属性:

public DateTime Surrender_Effective_Date { get; set; }

这是代码:

Licensedata.Surrender_Effective_Date = Convert.ToDateTime(Request["Surrender_Effective_Date"]);

我也试过这个但是相同,除了小时部分。

lALegalLicensedata.Surrender_Effective_Date = DateTime.Parse(Convert.ToDateTime(Request["Surrender_Effective_Date"]).ToShortDateString());

我的数据库表日期为字符串。我无法改变它。在我的C#中,我需要将Datetime作为其他问题。 当我调试时,我可以看到值已经是凌晨12点00分,所以如果某种方式我可以格式化并将日期部分发送到DB我应该没问题。

4 个答案:

答案 0 :(得分:1)

将您的数据库表格列数据类型从DateTime改为Date ..希望您的问题能解决..

如果你的列数据类型是NVarcharVarchar,那么在将数据插入数据库时​​将其转换为字符串..

dbcommand.Parameter.Add("Surrender_Effective_Date",DBType.Nvarchar).Value=Surrender_Effective_Date.ToString("dd/MM/yyyy");

codebehind中的其他日期时间进行比较时仅与date进行比较

if(Surrender_Effective_Date.Date==anotherDate.Date)
{
 //Rest of code goes here
}

在UI中显示值时,您需要再次格式化

Here有更多格式可供使用

答案 1 :(得分:0)

如果您需要将列作为DateTime,那么您 - 将它与时间一起存储在数据库中,默认情况下,如果没有设置,则为午夜。这就是DateTime值的设计方式。从数据库中检索数据时,您必须执行的操作是通过将日期存储在字符串中来删除information mentioned in this SO question

否则,将数据库中的Datetime列更改为Date列。

答案 2 :(得分:0)

如果我已经正确理解你需要覆盖ToString的行为以删除时间部分。

ABC

答案 3 :(得分:-1)

您可以使用\u65533\u0097\u65533\u0075\u0108\u65533\u0102\u0115\u65533\u65533\u0114\u65533\u65533\u0100\u65533\u0114\u0111\u65533\u0101 来显示结构TimeSpan的时间和属性TimeOfDay以获得时间:

DateTime