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

Как мога да добавя дни към дата в MYSQL в заявка

Изглежда, че искате редове с end_date е по-късно от преди пет дни.

Най-добрият начин да го получите е с

 WHERE end_date >= CURDATE() - INTERVAL 5 DAY

Работата с добавяне на цели числа към дати не работи в MySQL (това е нещо на Oracle). Така че трябва да използвате INTERVAL n unit синтаксис.

Ще забележите, че моята клауза WHERE по-горе е функционално еквивалентна на

 WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())

Но първата формулировка е по-добра от втората по две причини.

  1. ако споменете end_date в клауза WHERE, без да я обгръщате в изчисления, вашата заявка може да използва индекс на тази колона и да работи по-бързо.
  2. DATE(NOW()) и CURDATE() и двете се отнасят за първия момент от днес (полунощ). Но CURDATE() е малко по-просто.


  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. Показване на най-близкия резултат до текущата дата и час (MySQL и PHP)

  3. Как да използвам подготвен израз за заявка за избор в Java?

  4. Използване на правилния или за предпочитане, неравен оператор в MySQL

  5. Проверете дали MySQL таблица съществува или не