Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

खोज तर्क का उपयोग करते हुए दिनांक शर्तें

आपके मुद्दे का एक बड़ा हिस्सा हो रहा है क्योंकि आप स्ट्रिंग्स को तारीखों में परिवर्तित कर रहे हैं, और तारीखों को वापस स्ट्रिंग्स में बदल रहे हैं। मुझे विश्वास है कि आप इसे जरूरत से ज्यादा कर रहे होंगे।

एचटीएमएल फॉर्म वास्तव में तारीखों को "समझ" नहीं पाते हैं - वे सिर्फ तारों को "समझते हैं"। इसलिए तारीखों के बजाय उन्हें तार देना ठीक है। दूसरे शब्दों में, 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. INT कॉलम में NULL मान डालें

  2. मैसकल एक इंट को मैक में बदलें

  3. MySQL डेटाबेस सेवा - नई हीटवेव इनोवेशन

  4. 'उपयोगकर्ता' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  5. MySQL - परिकलित डेटा संग्रहीत बनाम फ्लाई पर फ़ील्ड की गणना करना