MySQL查询:开始日期但没有结束日期

时间:2013-04-03 14:54:46

标签: mysql

我正在研究一个数据库的查询,该数据库从今天开始提取所有记录 - 90天,然后从那里开始。但是,我意识到我已经编码了我的查询,所以它只能拉出90天的范围。所以我需要指出开始日期,但是我不需要指出结束日期,我想要过去90天内的所有内容。

    SELECT project_id, project_name, project_end
    FROM projects
    WHERE project_end BETWEEN SYSDATE() - INTERVAL 90 DAY AND SYSDATE()
    ORDER BY project_id ASC;

因为这只返回结束日期为-90的项目,而未来结束日期则没有。更复杂的是,有些项目根本没有输入结束日期(空值),有些项目已经输入了0000-00-00。

什么是指示90天前开始然后没有特定结束日期的范围的最佳方式?

2 个答案:

答案 0 :(得分:3)

如何使用>=

WHERE project_end >= SYSDATE() - INTERVAL 90 DAY OR
      project_end IS NULL OR
      project_end = '0000-00-00'

答案 1 :(得分:0)

为什么需要间隔?我想你可以使用:

WHERE
  project_end >= CURDATE() - INTERVAL 90 DAY
  OR COALESCE(project_end, '0000-00-00') = '0000-00-00'

这将选择在过去90天内拥有project_end的所有项目,或者具有NULL项目结束,或者项目结束='0000-00-00'