Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Warunki dat przy użyciu logiki wyszukiwania

Wydaje się, że duża część problemu ma miejsce, ponieważ konwertujesz ciągi znaków na daty i datuje się na ciągi. Wierzę, że możesz robić to więcej, niż musisz.

Formularze HTML tak naprawdę nie "rozumieją" dat - po prostu "rozumieją" ciągi. Więc jest w porządku, aby przekazać im ciągi zamiast dat. Innymi słowy, można usunąć 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 %>

Poza tym wolę używać :include_blank => true zamiast [['','']] (moim zdaniem bardziej czytelny dla człowieka) i użyłem zamkniętego <br/> tag (standardowe rzeczy html - może zrobiłeś literówkę?).

Przy okazji, jeśli chcesz określić Date, możesz użyć konstruktora Date. Jest krótszy do napisania i szybszy do wykonania niż tworzenie ciągu i analizowanie z niego daty.

#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. Data i godzina za godzinę po wstawieniu. Czas letni

  2. Ile wierszy w bazie danych to ZA DUŻO?

  3. mysql_fetch_array i tylko klucze tablicy ciągów

  4. Podziel wyniki MYSQL na 4 tablice

  5. Wstawianie wartości pól wyboru do bazy danych