2010-11-15 3 views
0

comparant la date à Ruby (findbySql)

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

fonctionne correctement, mais

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

ne renvoie aucune ligne ... quelqu'un peut-il aider .. mais pour la comparaison de date, nous devrions utiliser des citations à droite .. ??

+0

Vous ne devriez pas utiliser la chaîne interpolation dans la construction de requêtes SQL. Dans ce cas, il n'y a pas de risque d'injection SQL, mais il vaut mieux penser qu'il y a toujours un risque. – Vojto

+0

en utilisant les requêtes sans citation est valide ?? –

+0

essayer d'utiliser les conditions de la manière suivante : conditions => ['created_at

Répondre

0

Vous pouvez convertir le temps de base de données un par to_s(:db)

Par exemple,

Time.now.to_s(:db) 

J'ai trouvé que le temps de base de données est une meilleure utilisation Time.zone dans Rails

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

Je ne suis pas capable de comprendre .. pouvez-vous s'il vous plaît elloborate .. –