2010-11-15 2 views
0

ГДЕпроблема сравнения даты в Руби (findbySql)

l.created_at > #{params[:daysAgo].to_i.days.ago.strftime('%Y-%m-%d')} 

правильно работает, но

ГДЕ

l.created_at > '#{params[:daysAgo].to_i.days.ago.strftime('%Y-%m-%d 00:00')}' 

не возвращает ни одной строки ... может кто-нибудь поможет .. но для сравнения даты мы должны использовать цитаты правильно .. ??

+0

Вы не должны использовать строку интерполяция при построении SQL-запросов. В этом случае нет риска инъекции SQL, но лучше подумать, как всегда есть риск. – Vojto

+0

, используя запросы без цитаты? –

+0

попытайтесь использовать условия следующим образом: : условия => ['created_at

ответ

0

Вы можете конвертировать время в базу данных один за to_s(:db)

Например,

Time.now.to_s(:db) 

Я обнаружил, что время база данных лучше использовать Time.zone в Rails

Time.zone.now.to_s(:db) 
+0

Я не могу понять .. не могли бы вы elloborate .. –

Смежные вопросы