Ruby 从带有日期和时间的数据库中检索记录
当开始日和结束日相等时,如果我想查看maybe:“from”2009年5月6日至2009年5月6日的记录,我在尝试从数据库检索记录时遇到问题。它不给我记录,并且在数据库中,如果键入“from”2009年5月6日至2009年5月7日,它只给我记录。我的代码是 def生成电子邮件Ruby 从带有日期和时间的数据库中检索记录,ruby,Ruby,当开始日和结束日相等时,如果我想查看maybe:“from”2009年5月6日至2009年5月6日的记录,我在尝试从数据库检索记录时遇到问题。它不给我记录,并且在数据库中,如果键入“from”2009年5月6日至2009年5月7日,它只给我记录。我的代码是 def生成电子邮件 @start=“#{params[:start][:day]}-#{params[:start][:month]}-#{params[:start][:year]}” @start_date=date.parse(@sta
@start=“#{params[:start][:day]}-#{params[:start][:month]}-#{params[:start][:year]}”
@start_date=date.parse(@start)rescue
如果@开始日期
渲染:更新do |页面|
page.hide“闪存错误”
视觉效果:突出显示“闪光错误”,持续时间=>3
page.replace_html“flash error”,“无效日期,您为#{params[:start][:day]}月选择了#{params[:start][:month]}天”
第页。显示“闪存错误”
终止
回来
终止
@end=“#{params[:end][:day]}-#{params[:end][:month]}-#{params[:end][:year]}”
@end_date=date.parse(@end)rescue
如果@结束日期
渲染:更新do |页面|
page.hide“闪存错误”
page.visual_效果:突出显示“闪光错误”
page.replace_html“flash error”,“无效日期,您为#{params[:end][:day]}月选择了#{params[:end][:month]}天”
第页。显示“闪存错误”
终止
回来
终止
@sent_message=SentMessage.find(:all,:conditions=>[“message_type='Email'和estate_id=?和sent_date>='#{@start_date}'和sent_date='.@start_date}'和sent_date='.@estate_id],:order=>“sent_date DESC”
终止
@sent_message=SentMessage.find(:all,:conditions=>[“message_type='Email'和estate_id=?和sent_date>=”#{@start_date}'和sent_date我建议您检查date.parse
是否无法解析@start
和@end
-很有可能运行ruby代码的应用程序的区域设置无法正确解析从参数
获得的值。您能重新格式化代码,使其更可读吗e?似乎你遗漏了“救援”声明的一部分…谢谢大家,但我想出了答案,因为如果你选择了你想要的日期之前的一天,它会给你答案…例如“2009年5月5日”到“2009年5月6日”。但这不是用户应该看到的,所以我想出了一个方法,如果他们相等,就减去一天。。
@start = "#{params[:start][:day]}-#{params[:start][:month]}-#{params[:start][:year]}"
@start_date = Date.parse(@start) rescue
if !@start_date
render :update do |page|
page.hide "flash-error"
page.visual_effect :highlight, "flash-error", :duration => 3
page.replace_html "flash-error", "Invalid date, You selected #{params[:start][:day]} days for the #{params[:start][:month]} month"
page.show "flash-error"
end
return
end
@end = "#{params[:end][:day]}-#{params[:end][:month]}-#{params[:end][:year]}"
@end_date = Date.parse(@end) rescue
if !@end_date
render :update do |page|
page.hide "flash-error"
page.visual_effect :highlight, "flash-error"
page.replace_html "flash-error", "Invalid date, You selected #{params[:end][:day]} days for the #{params[:end][:month]} month"
page.show "flash-error"
end
return
end
@sent_message = SentMessage.find(:all, :conditions => ["message_type='Email' AND estate_id=? AND sent_date >= '#{@start_date}' AND sent_date <= '#{@end_date}' OR sent_date ='#{@start_date}' AND sent_date = '#{@end_date}' ", @estate_id], :order => "sent_date DESC")
@start = "#{params[:start][:day]}-#{params[:start][:month]}-#{params[:start][:year]}"
@start_date = Date.parse(@start)rescue
if !@start_date
render :update do |page|
page.hide "flash-error"
page.visual_effect :highlight, "flash-error", :duration => 3
page.replace_html "flash-error", "Invalid date, You selected #{params[:start][:day]} days for the #{params[:start][:month]} month"
page.show "flash-error"
end
return
end
@end = "#{params[:end][:day]}-#{params[:end][:month]}-#{params[:end][:year]}"
@end_date = Date.parse(@end) rescue
if !@end_date
render :update do |page|
page.hide "flash-error"
page.visual_effect :highlight, "flash-error"
page.replace_html "flash-error", "Invalid date, You selected #{params[:end][:day]} days for the #{params[:end][:month]} month"
page.show "flash-error"
end
return
end
if @start_date == @end_date
@start_date = DateTime.parse(@start)-1
@end_date = DateTime.parse(@end)
@sent_message = SentMessage.find(:all, :conditions => ["message_type='Email' AND estate_id=? AND sent_date >= '#{@start_date}' AND sent_date = '#{@end_date}' ", @estate_id], :order => "sent_date DESC")
end
@sent_message = SentMessage.find(:all, :conditions => ["message_type='Email' AND estate_id=? AND sent_date >= '#{@start_date}' AND sent_date <= '#{@end_date}' OR sent_date ='#{@start_date}' AND sent_date = '#{@end_date}' ", @estate_id], :order => "sent_date DESC")