Câu trả lời:
SELECT * FROM users WHERE created >= CURDATE();
Nhưng tôi nghĩ bạn có nghĩa là created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Đọc thêm: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
nếu cột là kiểu datetime.
Nếu 'created' là kiểu datetime
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
HIỆN TẠI () cũng có nghĩa là '2013-05-09 00:00:00'
Nếu cột có chỉ mục và một chức năng được áp dụng trên cột thì chỉ mục không hoạt động và quét toàn bộ bảng xảy ra, gây ra truy vấn thực sự chậm.
Để sử dụng chỉ mục và so sánh datetime với ngày hôm nay / ngày hiện tại, có thể sử dụng các mục sau đây.
Giải pháp cho OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Mẫu để lấy dữ liệu cho ngày hôm nay:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Hoặc sử dụng ngắn gọn GIỮA
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Các mã dưới đây làm việc cho tôi.
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
json_date ["05/11/2011"]
bạn có thể trả về tất cả các hàng và sử dụng hàm php dateiff bên trong một câu lệnh if, mặc dù điều đó sẽ tăng thêm tải cho máy chủ.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
chỉ trả lại ngày không phải thời gian