如果日期字段不为空,则将日期字段与今天的日期进行比较

时间:2018-06-05 04:45:58

标签: c# sql linq

我想查询来自db的数据,该数据库基于我调用ExpiryDate的日期字段。我希望得到所有数据(ExpiryDate可能为空) EXCEPT 值,其ExpiryDate比今天的日期还要多一天。< / p>

这是我的剧本:

from a in b
where a.EXPIRYDATE == null || a.EXPIRYDATE != null 
&& a.EXPIRYDATE >= DateTime.Today.AddDays(-1)
select new ...

任何人都可以解释为什么不起作用?

顺便说一句,这个脚本有效:

from a in b
where a.EXPIRYDATE == null || a.EXPIRYDATE != null 
&& a.EXPIRYDATE >= DateTime.Today
select new ...

EXPIRYDATE字段如下:

05-MAY-18

07-SEP-17

22-NOV-17

05-AUG-17

18-APR-18

02-FEB-18

28-AUG-17

31-DEC-99

01-DEC-90

31-DEC-99

31-DEC-99

31-DEC-99

31-DEC-99

31-DEC-99

31-DEC-99

31-DEC-17

31-DEC-99

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

(null)

1 个答案:

答案 0 :(得分:3)

道歉,这是关于LINQ查询。 我的问题是获取所有字段的数据,除非expirydate在昨天之前。

我找到了解决方案:

DateTime yest = DateTime.Today.AddDays(-1);
returnValue = (from a in b
where (a.EXPIRYDATE == null ||  a.EXPIRYDATE > yest)
select new ...

我必须从今天开始减去日期并将其存储在LINQ查询之前的变量中,而不是在查询中使用DateTime.Today.AddDays(-1)。