Ruby 从带有日期和时间的数据库中检索记录

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

当开始日和结束日相等时,如果我想查看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(@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")