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

Как да съхранявате датата на раждане и възрастта, така че възрастта да може да се актуализира ежедневно в PHP/MySQL?

Простият отговор е не; никога не съхранявайте възрастта на хората. Променя се за всеки човек всяка година, но, както казвате, трябва да проверявате дали е правилен за всеки човек всеки ден.

Съхранявайте само датата на раждане и след това изчислявайте възрастта, когато избирате от базата данни. Това е само today - date of birth така че не изисква почти никакви процесори.

РЕДАКТИРАНЕ:

За да разширя коментара си в отговора на ManseUK има и възможност за провал. Какво се случва, ако вашият сървър/база данни не работи? Или вашата актуализация не се изпълнява в определеното време? Или някой идва и го стартира ръчно, след като актуализацията вече е стартирана за тази дата? Или някой изключва вашия планировчик? Няма опасност това да се случи, ако изчислите Age както изберете от базата данни.

За да изберете къде възрастта е между 25 и 30 години и като приемете колона ДАТА dateofbirth вашата заявка би била нещо като:

select *
  from users
 where dateofbirth between date_add( curdate(), interval -30 year )
                       and date_add( curdate(), interval -25 year )

Уверете се, че users е индексиран на dateofbirth .



  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 таблица на Schrödingers:съществува, но не съществува

  3. Заявка за получаване на родителски записи с дъщерни записи, последвани от следващи записи родител-дете в mysql

  4. добър ли е MySql за големи бази данни?

  5. MySQL динамична централна таблица