基本上,我正在做这样的事情:

select a.name from schedule as a
where date(now()) <= a.dateTo;


但是a.dateTo可以为null。因此,我希望查询执行以下操作:

select a.name from schedule as a
where date(now()) <= a.dateTo IF a.dateTo is not null;


这只是解释我要实现的目标的简化方法。

有任何想法吗?

更新:

以下示例可能会更好地说明所需内容

select a.name from schedule as a
where date(now()) >= a.dateFrom and
      date(now()) <= a.dateTo;


如果添加OR a.dateTo is null,我认为它将覆盖第一个条件:date(now()) >= a.dateFrom,这不是所需的查询。使用AND也会发生类似的情况。

如果a.dateTo为null,则它将为> date(now()),因此,如果第一个条件也适用,则应检索这些记录:date(now()) >= a.dateFrom

谢谢你的帮助

最佳答案

select a.name from schedule as a where curdate() <= ifnull(a.dateTo,curdate());

10-05 22:02