Saat saya meneliti ini, saya pikir akan menyenangkan untuk memodifikasi solusi ANTARA untuk menunjukkan contoh untuk tanggal non-statis / string tertentu, melainkan tanggal variabel, atau hari ini seperti CURRENT_DATE()
. Ini AKAN menggunakan indeks pada kolom log_timestamp.
SELECT *
FROM some_table
WHERE
log_timestamp
BETWEEN
timestamp(CURRENT_DATE())
AND
timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL '86399.999999' SECOND_MICROSECOND));
Saya melakukan detik / mikrodetik untuk menghindari kasus 12AM pada hari berikutnya. Namun, Anda juga dapat melakukan `` INTERVAL '1 HARI' melalui operator perbandingan untuk pendekatan non-ANTARA yang lebih ramah-pembaca:
SELECT *
FROM some_table
WHERE
log_timestamp >= timestamp(CURRENT_DATE()) AND
log_timestamp < timestamp(DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY));
Kedua pendekatan ini akan menggunakan indeks dan akan melakukan JAUH lebih cepat. Keduanya tampak sama cepatnya.