0

我有格式的日期2013-08-05 12:45:56。但我想将其以格式存储2013-08-05 00:00:00在数据库中。

我想要的是,我不想在数据库中节省时间。

我在用:

cmd.Parameters.AddWithValue("@VoucherDate", VoucherDate.Date);

但它仍然节省了时间。有什么建议么?

4

5 回答 5

2

如果您使用的是SQL 2008或更高版本,则可以使用Date数据类型

http://msdn.microsoft.com/en-us/library/bb675168.aspx

如果您只想在C#中获取Date部分,那么您可以使用该属性,例如Date

var fullDate = DateTime.Now;
var dateOnly = fullDate.Date;

但是,如果您只想存储日期部分,请考虑更改SQL 数据类型

于 2013-08-05T09:11:18.393 回答
1

使用日期列类型而不是日期时间

http://technet.microsoft.com/en-us/library/bb630352.aspx

于 2013-08-05T09:08:14.363 回答
0

一旦我也遇到了类似的问题,在这个答案的帮助下,我修复了它。

你的C#代码:

cmd.Parameters.AddWithValue("VoucherDate", VoucherDate.Date);

调整您的SQL查询,如下所述,

DATEADD(dd, 0, DATEDIFF(dd, 0, @VoucherDate))
于 2013-08-05T09:22:56.713 回答
0

即使您在数据库中有 Date 或 DateTime 列,当您将数据读回程序时,您也可以通过提供正确的 DataTime 格式字符串来格式化显示日期。

dt.ToString("yyyy-MM-dd),那么你将不会得到任何时间作为输出

于 2013-08-05T09:18:57.167 回答
-1

尝试使用:

VoucherDate.Date.ToShortDateString();
于 2013-08-05T09:11:20.557 回答