DECLARE @items table (
pfid varchar(8),
timestart datetime,
timeend datetime
)
insert INTO @items(pfid,timestart,timeend)
VALUES('123456','12:00 AM','3:00 AM')
,('987654', '2:00 AM', '4:00 PM')
,('492384', '3:00 PM', '9:00 PM')
SELECT * FROM @items a
INNER JOIN @items b
ON a.timestart < b.timeend
AND b.timestart < a.timeend
AND a.pfid != b.pfid
我需要将上面的select语句转换为LINQ。在我的代码中,我正在使用名为'dt'的DataTable。我的表有三列,就像上面的例子一样,名称完全相同,并填充了这些数据。
我正在努力创建一个LINQ查询,它将以与我上面的临时表一起使用的SQL查询相同的方式查询我的DataTable。请协助。提前谢谢!
答案 0 :(得分:0)
某些内容......我没有对此进行测试,但如果需要,您可能需要进行Datetime.Parse等...
(from r1 in dt.Rows.OfType<DataRow>()
from r2 in dt.Rows.OfType<DataRow>()
where r1["timestart"] < r2["timeend"] && r2["timestart"] < r1["timeend"] && r1["pfid"] != r2["pfid"]
select new {R1=r1, R2=r2})