MySQL 查询 : start date but no end date

标签 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 的项目,而不会返回 future 结束日期的项目。更复杂的是,有些项目根本没有输入结束日期(空值),有些项目输入的是 0000-00-00。

指示从 90 天前开始然后继续向前但没有具体结束日期的范围的最佳方式是什么?

最佳答案

使用 >= 怎么样?

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

关于MySQL 查询 : start date but no end date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790788/

相关文章:

当值太大时 php-handlersocket 结果会被截断

mysql - 如何将SQL Server程序转换为MySQL?

PHP 数据库驱动的多级菜单

mysql - 为什么 phpmyadmin 结果中估计的行数非常不同?

php - 多级登录不进入指定菜单

mysql - 从多个具有原点的相同表中选择

php - 如何在不登录的情况下仅通过浏览器身份验证为有效用户创建下载目录?

mysql - 保存存储过程时出错

MYSQL查询两个表之间的多个id到名称解析

mysql - 将 MySQL 转储导入 Postgres 并转义\