Tôi đang cố viết một truy vấn để chọn tất cả các bản ghi từ users
bảng trong đó User_DateCreated
(trường ngày giờ) là> = 3 tháng kể từ hôm nay.mysql chọn các bản ghi lớn hơn 3 tháng
Bất kỳ ý tưởng nào?
Tôi đang cố viết một truy vấn để chọn tất cả các bản ghi từ users
bảng trong đó User_DateCreated
(trường ngày giờ) là> = 3 tháng kể từ hôm nay.mysql chọn các bản ghi lớn hơn 3 tháng
Bất kỳ ý tưởng nào?
SELECT *
FROM users
WHERE user_datecreated >= NOW() - INTERVAL 3 MONTH
Nếu bạn muốn bỏ qua thời gian trong ngày khi người dùng được tạo, bạn có thể sử dụng như sau. Vì vậy, điều này sẽ hiển thị một người nào đó được tạo lúc 8 giờ sáng nếu bạn chạy truy vấn ví dụ của Quassnoi lúc 2:00 chiều.
SELECT *
FROM users
WHERE DATE(user_datecreated) >= DATE(NOW() - INTERVAL 3 MONTH)
Sử dụng DATE (user_datecreated) ngăn không cho mysql sử dụng bất kỳ chỉ mục nào trên cột, làm cho truy vấn thực sự chậm khi bảng phát triển.
Bạn không phải bỏ qua thời gian khi người dùng được tạo nếu bạn xóa thời gian khỏi ngày "3 tháng trước", vì tất cả người dùng đã tạo ngày đó sẽ khớp với điều kiện.
SELECT *
FROM users
WHERE user_datecreated >= DATE(NOW() - INTERVAL 3 MONTH);