Mysql
 sql >> база данни >  >> RDS >> Mysql

опитвайки се да получа броя на месеците

Грешката 1054 е, защото колоната не съществува в таблиците, дефинирани в FROM клауза. Освен това WHERE клаузата не се използва за задаване на променлива или псевдоним на колона - тя е за филтриране на върнатите редове.

Използвайте DATEDIFF :

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

НАЙ-МАЛКО функцията ще върне най-ниската от двете дати, така че ще използва текущата дата, ако крайната дата е в бъдеще. Можете да използвате GREATEST функция, ако искате това да се обърне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL индекси - колко са достатъчни?

  2. Кога да затворите курсорите с MySQLdb

  3. Условно INSERT В MySQL - КЪДЕТО НЕ СЪЩЕСТВУВА

  4. Комбинирайте две заявки, за да проверите за дубликати в MySQL?

  5. Каква е разликата между използването на INDEX срещу KEY в MySQL?