我应该如何在我的 C# 查询中使用 c# 日期时间值?
到目前为止,我一直在做以下事情:
Datetime my_time = new DateTime(2012, 09, 05);
cmd.Parameters.AddWithValue("@date", my_time);
cmd.CommandText = "SELECT * FROM sales WHERE date = @date";
直到今天早上,当我从结果集中检索值时出现空错误时,它一直运行良好。
我更改了日期参数以从我的日期时间值中获取短日期字符串,如下所示:
cmd.Parameters.AddWithValue("@date", my_time.ToShortDateString());
它似乎又可以正常工作了。
这样做的正确方法是什么?显然,我正在将我的日期时间值转换为字符串,仅(可能)让数据库在评估我的相等 where 子句之前将其转换回日期时间,这似乎有点毫无意义。
编辑:
我使用的是 SQL Server Compact Edition,示例中的日期字段的精度设置为 8(日期,不包括时间,对吗?)。这是否意味着我之前以 00:00:00.000 结束了完整的日期?如何在不包括时间的情况下将日期时间值传递给数据库,而不先转换为字符串?