我有一个表,其中有两个单独的日期和时间列(SQL Server 2008)。
我正在尝试在asp.net MVC(C#)应用程序中获取当前时间之前1分钟到当前当前时间之后1分钟之间的数据。
我尝试将where条件用作:
ce.Start_Date.Add(ce.Start_Time) >= _currDateTime.AddMinutes(-1) &&
ce.Start_Date.Add(ce.Start_Time) <= _currDateTime.AddMinutes(1)
但是从上面的条件开始,它会引发一个错误:
The datepart millisecond is not supported by
date function dateadd for data type date.
如何纠正/纠正此错误?
最佳答案
不要在where
子句中添加分钟,而是尝试执行以下操作:
for ce in data
let start = _currDateTime.AddMinutes(-1)
let end = _currDateTime.AddMinutes(1)
where ce.Start_Date.Add(ce.Start_Time) >= start &&
ce.Start_Date.Add(ce.Start_Time) <= end
select ce
LINQ to SQL试图将您的
where
子句转换为有效的T-SQL(使用T-SQL's dateadd
function),但是这样做很麻烦。关于c# - 使用linq-sql从指定日期和时间范围之间的数据库中获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1594275/