Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để lưu trữ Ngày sinh và Tuổi để Tuổi có thể được cập nhật hàng ngày trong PHP / MySQL?

Câu trả lời đơn giản là không; không bao giờ lưu trữ một tuổi người. Nó thay đổi đối với mỗi người hàng năm nhưng, như bạn nói, bạn phải kiểm tra xem nó có chính xác cho mỗi người hàng ngày hay không.

Chỉ lưu trữ ngày sinh, sau đó tính tuổi khi chọn từ cơ sở dữ liệu. Chỉ có today - date of birth vì vậy hầu như không sử dụng CPU.

CHỈNH SỬA:

Để mở rộng nhận xét của tôi trong câu trả lời của ManseUK cũng có khả năng thất bại. Điều gì xảy ra nếu máy chủ / cơ sở dữ liệu của bạn không hoạt động? Hoặc bản cập nhật của bạn không chạy vào thời gian được chỉ định của nó? Hoặc ai đó đến và chạy nó theo cách thủ công sau khi bản cập nhật đã được chạy cho ngày đó? Hoặc ai đó tắt trình lên lịch của bạn? Điều này sẽ không có nguy cơ xảy ra nếu bạn tính toán Age khi bạn chọn từ cơ sở dữ liệu.

Để chọn độ tuổi từ 25 đến 30 tuổi và giả sử cột DATE dateofbirth truy vấn của bạn sẽ giống như sau:

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

Đảm bảo người dùng users được lập chỉ mục trên 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 - bất kỳ cách nào để giúp tìm kiếm toàn văn bản với một chỉ mục khác?

  2. MySQL - Lấy số hàng khi chọn

  3. Chọn tất cả các trường tương ứng bằng MAX và GROUP BY

  4. Gỡ lỗi kích hoạt MySQL

  5. Tại sao Entity Framework lại tạo ra các truy vấn SQL lồng nhau?