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

perbandingan tanggal mysql dengan date_format

Format Anda pada dasarnya bukan format yang dapat diurutkan untuk memulai - Anda membandingkan string , dan string "28-10-2012" adalah lebih besar dari "02-11-2012".

Sebaliknya, Anda harus membandingkan tanggal sebagai tanggal , lalu hanya mengonversinya ke format target Anda untuk keluaran.

Coba ini:

select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';

(Input harus selalu dalam bentuk nilai tahun-bulan, sesuai dokumentasi .)

Perhatikan bahwa jika starttime adalah DATETIME , Anda mungkin ingin mempertimbangkan untuk mengubah kueri untuk menghindari konversi berulang. (Pengoptimal mungkin cukup pintar untuk menghindarinya, tetapi perlu diperiksa.)

select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';

(Perhatikan bahwa tidak biasa memformat tanggal sebagai d-m-Y untuk memulai - akan lebih baik menggunakan y-M-d secara umum, menjadi standar ISO-8601 dll. Namun, kode di atas melakukan apa yang Anda minta dalam pertanyaan.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah Hibernate bekerja dengan sintaks ON DUPLICATE KEY UPDATE MySQL?

  2. Apa cara terbaik untuk mengakses database dari PHP?

  3. Database - Merancang Tabel Acara

  4. Unit Tanggal &Waktu di MySQL (Daftar Lengkap)

  5. CodeIgniter:Menyimpan gambar di database?