在用户界面中,我有两个date picker
字段,用户可以选择开始日期和结束日期进行搜索。 (没有时间值输入,只有日期部分)因此,例如,如果他只想查看该特定日期的记录,他可以为其标准的开始和结束输入相同的日期。
现在,在SQL Server中,这些列存储为DateTime文件,其值为
'2013-04-04 10:48:02.830'
因为它也将时间保留在SQL Server中,所以当C#部分的开始和结束日期相同时,我的搜索没有返回结果。 我怎样才能在C#端解决这个问题? (我假设我们在应用程序的其他部分保留在SQL Server中的时间部分有一个用例,所以不要乱用后端部分。)
所以: SQL Server的值为'2013-04-04 10:48:02.830'
C#传递的值为{11/26/2011 12:00:00 AM}
当开始和结束日期相同时,我们得不到任何结果。
答案 0 :(得分:2)
假设您的后端有代码转到SQL Server,而不是拥有数据绑定的UI:
您只需获取从UI获得的两个值并根据需要进行修改:
DateTime from = originalFromDate.Date;
DateTime to = originalToDate.Date.AddDays(1).AddSeconds(-1);
现在如果您搜索from和to之间的任何内容,您将找到您的记录:
(在LINQ的情况下:)
var query = queryUntilNow.Where(x => x.Date >= from && x.Date <= to);