【问题标题】:MYSQL query for finding value用于查找值的 MYSQL 查询
【发布时间】:2015-07-01 02:33:17
【问题描述】:

我需要输出,如果有人献血,最后献血日期将输入我的数据库。我想要的是,当我选择所有记录时,它不应该显示过去 3 个月内献血的献血者的记录。所以下面是我的查询,但我没有得到我想要的输出。

select id,name,date_format(dateee,'%d/%m/%Y') as datetwo 
from emp 
where dateee < curdate()-90;

其中“dateee”是我在数据库中的日期列。我得到如下所示的输出。

OUTPUT:  
datetwo  
20/01/2015  
05/05/2015

见第二条记录。我不应该得到这个,因为他只在上个月捐款。

【问题讨论】:

    标签: java mysql sql


    【解决方案1】:

    使用这个查询

    select id,name,date_format(dateee,'%d/%m/%Y') as datetwo 
    from emp 
    where dateee < (DATE_SUB(CURDATE(), INTERVAL 3 MONTH));
    

    【讨论】:

      【解决方案2】:

      此查询为您提供准确的结果,因为它使用了从当前日期算起的准确 90 天间隔。

      select id,name,date_format(dateee,'%d/%m/%Y') as datetwo 
      from emp 
      where dateee < DATE_SUB(curdate(), interval 90 day);
      

      【讨论】:

      • 是的,它也可以,非常感谢先生 :) 但是哪一个会更好,几个月或一天?
      • 你不能以月为单位计算 90 天,不是吗?
      • 如果您计算当前日期之后的天数而不是月数,因为该月的天数并不总是等于 30。
      • 是的。由于一个月中有 31-30-31 天的顺序,我可以花 92 天吗?但如果我采取这种方式,二月份应该怎么做?
      • 不,在你使用了 90 天的问题中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2021-04-24
      相关资源
      最近更新 更多