Apakah ada cara dalam pernyataan MySQL untuk memesan catatan (melalui cap tanggal) dengan> = SEKARANG () -1 sehingga semua catatan dari hari sebelum hari ini hingga masa depan dipilih?
138
Dilihat oleh dokumentasi untuk fungsi tanggal / waktu , Anda harus dapat melakukan sesuatu seperti:
SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY
Ketahuilah bahwa hasilnya mungkin sedikit berbeda dari yang Anda harapkan.
NOW()
mengembalikan aDATETIME
.Dan
INTERVAL
berfungsi seperti namanya, misINTERVAL 1 DAY = 24 hours
.Jadi, jika skrip Anda dijalankan pada cron
03:00
, ia akan melewatkanfirst three hours of records from the 'oldest' day
.Untuk mendapatkan penggunaan sepanjang hari
CURDATE() - INTERVAL 1 DAY
. Ini akan kembali ke awal hari sebelumnya terlepas dari kapan skrip dijalankan.sumber
Anda hampir sampai: itu
NOW() - INTERVAL 1 DAY
sumber
Tentu kamu bisa:
sumber
DATE_ADD
itu-1 day
.Tidak melihat jawaban dengan benar menggunakan
DATE_ADD
atauDATE_SUB
:Kurangi 1 hari dari
NOW()
Tambahkan 1 hari dari
NOW()
sumber
ketika bidang pencarian adalah timestamp dan Anda ingin menemukan catatan dari 0 jam kemarin dan 0 jam hari ini menggunakan konstruksi
sebagai gantinya
sumber