Mysql
 sql >> база данни >  >> RDS >> Mysql

Условия за дата с помощта на логика на търсене

Голяма част от проблема ви изглежда се случва, защото преобразувате низове в дати и датирате обратно в низове. Вярвам, че може да го правите повече, отколкото е необходимо.

HTML формите всъщност не "разбират" датите - те просто "разбират" низове. Така че е добре да им предадете низове вместо дати. С други думи, добре е да премахнете 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 %>

Освен това предпочитам да използвам :include_blank => true вместо [['','']] (по-разбираем от хората, според мен) и използвах затворен <br/> етикет (стандартни html неща - може би сте направили печатна грешка?).

Между другото, ако искате да посочите дата, можете да използвате конструктор за дата. По-кратко е за писане и по-бързо за изпълнение, отколкото да създавате низ и да анализирате дата от него.

#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. MySQL Join въз основа на индексиране YEAR () - добавяне на колона или генерирана колона

  2. Свържете се с mysql база данни чрез SSH през PHP

  3. [MySQL]:Какво представлява методът за съпоставяне?

  4. Вмъкване и извличане на данни в MySQL с помощта на PHP чрез Ajax

  5. вземете изображение тип mime