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

सक्रिय रिकॉर्ड पूछताछ और उसकेोकू के साथ समस्या।

आपको प्लेसहोल्डर का उपयोग करना चाहिए सही प्रारूप प्राप्त करने और यह सुनिश्चित करने के लिए कि यह ठीक से उद्धृत किया गया है:

t      = Time.new
events = Event.where("datetime < :t", :t => t)

आप किसी timestamp की तुलना नहीं कर सकते हैं PostgreSQL में एक पूर्णांक के साथ कॉलम लेकिन आप SQLite में कर सकते हैं। आपको अपने timestamp . की तुलना करनी होगी दूसरे timestamp के साथ (या date ) या एक स्ट्रिंग जिसे timestamp . के रूप में पार्स किया जा सकता है . यह SQL काम नहीं करेगा:

SELECT "events".* FROM "events" WHERE (datetime < 132462148)

लेकिन ये करेंगे:

SELECT "events".* FROM "events" WHERE (datetime < '2011-12-23 06:52:25.096869')
SELECT "events".* FROM "events" WHERE (datetime < '2011-12-23')

यहां कई पाठ हैं:

  1. यदि आप हरोकू में परिनियोजन करने जा रहे हैं, तो आपको PostgreSQL के शीर्ष पर भी विकास करना शुरू कर देना चाहिए, ActiveRecord आपको विभिन्न डेटाबेस के बीच सभी अंतरों से अलग नहीं करेगा।
  2. आपको ActiveRecord को जितना संभव हो सके प्रकार रूपांतरण मुद्दों के बारे में चिंता करने देना चाहिए, यदि आप किसी दिनांक या समय के विरुद्ध तुलना कर रहे हैं, तो प्लेसहोल्डर का उपयोग करें और AR को किसी प्रकार की टाइम ऑब्जेक्ट सौंपें और AR को इसके बारे में चिंता करने दें।
  3. जहां भी संभव हो स्ट्रिंग इंटरपोलेशन के बजाय प्लेसहोल्डर का उपयोग करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres में किसी अन्य फ़ंक्शन के पैरामीटर के रूप में कार्य

  2. रेल में एक प्रश्न में वस्तुओं की वस्तुओं को प्राप्त करें

  3. regexp_matches घुंघराले कोष्ठक लौटने से छुटकारा पाने का बेहतर तरीका

  4. रेल प्रवासन:PostgreSQL पर Bigint विफल हो रहा है?

  5. इनपुट के आधार पर अनुक्रमित और गैर-अनुक्रमित ऑपरेशन के बीच कैसे स्विच करें?