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

Kondisi tanggal menggunakan logika Pencarian

Sebagian besar masalah Anda tampaknya terjadi karena Anda mengubah string menjadi tanggal, dan tanggal kembali ke string. Saya yakin Anda mungkin melakukannya lebih dari yang Anda butuhkan.

Formulir HTML tidak benar-benar "memahami" tanggal - mereka hanya "memahami" string. Jadi tidak apa-apa untuk memberikan string sebagai ganti tanggal. Dengan kata lain, boleh saja menghapus to_date .

<% form_for @search do |f| %>
    <%= f.label :start %>
    <%= f.select :due_at_after,
          ['November', '2009-11-01'],['December', '2009-12-01']],
          :include_blank => true
    %>
    <br/>
    <%= f.label :end %>
    <%= f.select :due_at_before,
          [['December', '2009-12-01'],['January', '2010-01-01']],
          :include_blank => true
    %>
    <%= f.submit 'Search' %>
<% end %>

Juga, saya lebih suka menggunakan :include_blank => true bukannya [['','']] (lebih dapat dibaca manusia, menurut saya), dan saya menggunakan <br/> . tertutup tag (hal-hal html standar - mungkin Anda salah ketik?).

Omong-omong, jika Anda ingin menentukan Tanggal, Anda bisa menggunakan konstruktor Tanggal. Menulis dan mengeksekusi lebih cepat daripada membuat string dan menguraikan tanggal darinya.

#Date(2009,11,1) is faster, shorter, and equivalent
Date(2009,11,1) == '2009-11-01'.to_date # --> true


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hirarki Banyak-ke-Banyak dengan Banyak Orang Tua - PHP, MySQL

  2. Upser MySql dan peningkatan otomatis menyebabkan kesenjangan

  3. Pilih dari tabel yang sama sebagai Sisipan atau Perbarui

  4. Kinerja penyisipan basis data

  5. Catatan kloning SQL dengan indeks unik