我有一个使用日期时间的选择,来自两个日期时间选择器,在 WHERE 子句中。SELECT 运行良好,填充数据网格,没问题,但奇怪的是 SELECT 的日期时间部分被完全忽略,整个事情返回一个记录集,好像只使用了“WHERE x_account_id =” + subaccountID:
SqlCeConnection conn = new SqlCeConnection(Lib.ConnectionString);
string sql = "SELECT x_scaleid, x_weight, x_timestamp FROM x WHERE x_account_id = " + subaccountID
+ " AND (x_timestamp BETWEEN @start_date AND @end_date) ORDER BY x_timestamp DESC";
SqlCeCommand cmd = new SqlCeCommand(sql, conn);
cmd.Parameters.Add("@start_date", SqlDbType.DateTime, 8).Value = dFromFilter.Value.Date;
cmd.Parameters.Add("@end_date", SqlDbType.DateTime, 8).Value = dToFilter.Value.Date;
SqlCeDataAdapter da = new SqlCeDataAdapter();
da.SelectCommand = cmd;
在网上找不到有同样问题的人,所以我有点卡住了。也许我最好尝试将所有日期时间转换为 int,并以这种方式存储它们 - 总是讨厌使用日期时间类型。
在有人问之前,我已经尝试了该子句的各种版本,包括使用“<”和“>”,以及不同的 CONVERT 变体。