sql >> Database teknologi >  >> RDS >> Mysql

forsøger at få antallet af måneder

1054-fejlen skyldes, at kolonnen ikke findes i tabellen/tabellerne defineret i FROM klausul. Derudover er WHERE klausul bruges ikke til at angive en variabel eller et kolonnealias -- det er til filtrering af returnerede rækker.

Brug DATEDIFF :

SELECT t.member_id,
       DATEDIFF(LEAST(NOW(), t.membership_dueday), t.membership_startdate) / 30
  FROM MEMBERSHIP t

MINST funktion vil returnere den laveste af de to datoer, så den vil bruge den nuværende dato, hvis forfaldsdatoen ligger i fremtiden. Du kan bruge den GREATEST funktion, hvis du vil have det omvendt.




  1. Tager rekorden med max dato

  2. syntaksfejl:'afgrænser' er ikke gyldigt input her

  3. PARSE() vs CAST() vs CONVERT() i SQL Server:Hvad er forskellen?

  4. CASESTUDIE:ARKWARE MS ACCESS CRM