我如何在Linq中订购DateTime差异?

时间:2010-09-30 18:33:33

标签: linq datetime

我有一个包含CreatedDate列的表格。我想按数据库中最长的行排序,但需要通过从DateTime.Now中减去它来确定天数。

我只是通过CreatedDate订购才意识到这是可行的,但我还需要做更多的事情。

我需要按照一段时间内使用的次数来订购商品,实际上是获得最受欢迎的商品。

所以我想要做的是首先确定天数,然后将其除以每个项目的使用次数。

步骤1)

orderby (DateTime.Now.Subtract(t.CreatedDate.Value).Days)

步骤2)

orderby (t.UsedCount/DateTime.Now.Subtract(t.CreatedDate.Value).Days)

这会导致以下错误:

  

方法'System.TimeSpan Subtract(System.DateTime)'没有支持的SQL转换。

1 个答案:

答案 0 :(得分:2)

奇怪的是,“Subtract()”不起作用,但Minus确实如此。 尝试:

 orderby (t.UsedCount/(DateTime.Now - t.CreatedDate.Value).Days)

(使用“主”数据库在LINQPad中测试)

from sp in Spt_monitors
orderby sp.Io_busy / (DateTime.Now - sp.Lastrun).Days
select sp