我有格式的日期2013-08-05 12:45:56
。但我想将其以格式存储2013-08-05 00:00:00
在数据库中。
我想要的是,我不想在数据库中节省时间。
我在用:
cmd.Parameters.AddWithValue("@VoucherDate", VoucherDate.Date);
但它仍然节省了时间。有什么建议么?
我有格式的日期2013-08-05 12:45:56
。但我想将其以格式存储2013-08-05 00:00:00
在数据库中。
我想要的是,我不想在数据库中节省时间。
我在用:
cmd.Parameters.AddWithValue("@VoucherDate", VoucherDate.Date);
但它仍然节省了时间。有什么建议么?
如果您使用的是SQL 2008或更高版本,则可以使用Date
数据类型
http://msdn.microsoft.com/en-us/library/bb675168.aspx
如果您只想在C#中获取Date部分,那么您可以使用该属性,例如Date
var fullDate = DateTime.Now;
var dateOnly = fullDate.Date;
但是,如果您只想存储日期部分,请考虑更改SQL 数据类型。
使用日期列类型而不是日期时间
一旦我也遇到了类似的问题,在这个答案的帮助下,我修复了它。
你的C#
代码:
cmd.Parameters.AddWithValue("VoucherDate", VoucherDate.Date);
调整您的SQL
查询,如下所述,
DATEADD(dd, 0, DATEDIFF(dd, 0, @VoucherDate))
即使您在数据库中有 Date 或 DateTime 列,当您将数据读回程序时,您也可以通过提供正确的 DataTime 格式字符串来格式化显示日期。
像dt.ToString("yyyy-MM-dd)
,那么你将不会得到任何时间作为输出
尝试使用:
VoucherDate.Date.ToShortDateString();