Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan Mysql Dateiff

Sepertinya Anda mencoba melakukan ini:

WHERE specific_date < (NOW() + 5 days)

Pertama-tama, pikirkan baik-baik tentang kasus batas. Kasus batas ini dapat menggigit pergelangan kaki Anda dalam SQL. Apakah Anda benar-benar ingin

WHERE specific_date <= (NOW() + 5 days)

Lakukan specific_date stempel waktu kolom hanya berisi hari (yaitu tanggal dengan waktu sama dengan tengah malam) atau apakah berisi tanggal dan waktu? Jika Anda ingin mendapatkan hasil yang diinginkan, Anda harus berhati-hati dengan detail tersebut.

Bagaimanapun, coba ini:

WHERE specific_date <= DATE_ADD(NOW(), INTERVAL 5 DAY)

Ini adalah cara yang baik untuk melakukan pencarian seperti itu. Nilai kolom berdiri sendiri pada salah satu sisi predikat pertidaksamaan (<= ) sehingga mySQL dapat melakukan pemindaian rentang indeks jika Anda memiliki indeks di kolom.

Aritmatika tanggal di MySQL cukup fleksibel. Anda dapat melakukan

   NOW() + INTERVAL 10 SECOND
   NOW() - INTERVAL 2 MINUTE
   NOW() + INTERVAL 4 HOUR
   CURDATE() - INTERVAL 1 WEEK /* midnight one week ago */
   LAST_DAY(NOW()) + INTERVAL 1 DAY - INTERVAL 1 MONTH  /*first day of present month*/
   NOW() - INTERVAL 1 QUARTER
   CURDATE() - INTERVAL 5 YEAR

dan seterusnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. fetchAll fungsi pembantu menggunakan PDO

  2. Operator '<' dicadangkan Kesalahan PowerShell

  3. LINQ untuk alat Java

  4. Simpan array byte di MySQL dengan Hibernate

  5. Untuk apa deklarasi soket, di Ruby on Rails database.yml?