2011-02-18 9 views
5

मैं तालिका में अंतिम तिथि का चयन कैसे करूं जहां कॉलम नाम लार्स है।रेल - तालिका में अंतिम तिथि का चयन कैसे करें?

मैं कोशिश की है इस:

<%= Reklamer.where(":dato => :dato, AND :name => :name", :date => Date.last, :name => "Lars") %> 

मैं इस की कोशिश की है:

<%= Reklamer.where(name: 'Lars').order('dato ASC').limit(1).select('dato').inspect %> 

आउटपुट: 2011-02-15 23: [#<Reklamer dato: "2011-02-15 23:53:28">]

मैं की तरह सिर्फ एक datetime प्रारूप की जरूरत है: 53:28

मैं यह कैसे कर सकता हूं?

Reklamer.where(name: 'Lars').order('dato DESC').limit(1) 

आप अभी पिछले चाहते हैं:

<%= Reklamer.where(name: 'Lars').order('dato DESC').first %> 

साथ ही आप एक भी रिकॉर्ड करने के लिए सीमित करके ऐसा कर सकते हैं:

उत्तर

7

आप दिनांक के आधार पर आदेश और एक भी रिकॉर्ड का चयन करने के लिए है अंतिम प्रविष्टि की तिथि, आप यह कर सकते हैं:

Reklamer.where(name: 'Lars').last.dato 
+0

क्या आप सुनिश्चित हैं कि यह एकल एसक्यूएल क्वेरी का उपयोग करने से कम कुशल नहीं है।'find (: पहला,: शर्तें => [...],: आदेश => ...,: सीमा => 1) '? क्या इसे पहले डीबी से सभी 'रिकक्लेमर्स' नहीं लेना होगा? लेकिन किसी भी मामले में +1। –

+0

नहीं, जहां और ऑर्डर और सीमा सभी स्कॉप्ड हैं, इसलिए क्वेरी को तब तक निष्पादित नहीं किया जाता है जब पहली बार बुलाया जाता है। सबसे पहले LIMIT का उपयोग करने के बराबर है। –

+0

क्या होगा यदि मुझे बस तालिका में अंतिम तिथि ढूंढनी पड़े? :) –

संबंधित मुद्दे