代码之家  ›  专栏  ›  技术社区  ›  P.Davide

查询以获取当前日期大于另一个字段加一年的数据

  •  0
  • P.Davide  · 技术社区  · 1 年前

    我正在用mysql做一个php项目。在数据库中,我有一个存储用户数据的表,这些数据中有医疗证明。当我记录医疗证明时,我会插入发布日期(我知道自该日期起一年内有效)。 现在,我想从数据库中提取所有医疗证明过期的用户。为此,我使用了这个查询,但它返回了错误的结果。。我做错了什么?我错过了什么?我使用DATE_ADD在查询中为医疗证明添加一年:

    SELECT id, nome, cognome,data_scadenza_certificato_medico 
    FROM tbl_tesserati 
    WHERE CURRENT_DATE > (data_scadenza_certificato_medico = DATE_ADD(data_scadenza_certificato_medico, INTERVAL 1 YEAR)) 
        AND rif_tbl_utenti = 1
    
    id  nome    cognome    data_scadenza_certificato_medico 
    23  my_name my_surname 2023-08-20
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Hamdallah    1 年前

    查询的问题在于WHERE条件的构造方式。条件是将CURRENT_DATE与赋值操作的结果(=)进行比较,而不是直接检查日期逻辑。以下是如何更正查询:

    更正查询

    SELECT id, nome, cognome, data_scadenza_certificato_medico 
    FROM tbl_tesserati 
    WHERE CURRENT_DATE > DATE_ADD(data_scadenza_certificato_medico, INTERVAL 1 YEAR) 
        AND rif_tbl_utenti = 1;
    
    推荐文章