Jawaban:
SELECT * FROM users WHERE created >= CURDATE();
Tapi saya pikir maksud Anda created < today
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Baca lebih lanjut: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
SELECT * FROM users WHERE created >= NOW();
jika kolom adalah tipe datetime.
Jika 'dibuat' adalah tipe datetime
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () juga berarti '2013-05-09 00:00:00'
Jika kolom memiliki indeks dan fungsi diterapkan pada kolom maka indeks tidak berfungsi dan pemindaian tabel penuh terjadi, menyebabkan permintaan sangat lambat.
Untuk menggunakan indeks dan membandingkan datetime dengan hari ini / tanggal saat ini, berikut ini dapat digunakan.
Solusi untuk OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Contoh untuk mendapatkan data hari ini:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Atau gunakan ANTARA singkatnya
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Kode di bawah ini berfungsi untuk saya.
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"]
Anda dapat mengembalikan semua baris dan daripada menggunakan fungsi php Dateiff di dalam pernyataan if, meskipun itu akan menambah beban server.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
CURDATE()
kembalikan hanya tanggal bukan waktu