ruby-on-rails - rails/事件记录 : Get a record made *AFTER* a particular date

标签 ruby-on-rails sqlite postgresql activerecord

所以目前我遇到了一个问题,我正在通过客户端的 API 从 xml 文件填充数据库。每条记录都有一个到期日期,格式如下:

<offer_ends_at>2010-10-20T07:59:59-04:00</offer_ends_at>

现在,我需要运行一个查询,只获取在未来到期的记录。我当前的代码是:

@deals = Deal.where(["city = :city AND status = 'live' AND DATETIME(date_expires) >= DATETIME(:time)", { :city => @city.id, :time => Time.now }])

当我制作唱片时,我使用这个:

@deal.date_expires = DateTime.parse((entry/"offer_ends_at").inner_html)

这就是我获取日期时间并对其进行格式化的方式。

这是我所在的地方:

  1. 我似乎无法毫无问题地直接进入数据库。如果我使用上面的代码并将模式设置为具有 :datetime 或 :time 的列类型,它会给我 2000-01-01 的日期并且没有有效时间。从字面上看,它并没有像给定的那样设置实际日期。
  2. 我将列类型转换为 :string 并尝试使用它。现在我可以正确输入日期(它是一个字符串),但与此同时,我无法使上面的查询正常工作。

我只需要确保只显示尚未过期的记录。在网上搜索了两天也没有有效的答案,我决定在这里问一下。提前致谢:)

最佳答案

答案是我的代码从外观上看实际上并不糟糕。出现的问题是我没有正确格式化输入日期,使其成为运行查询时可以理解的内容。只需将我的查询从 Time.now 更改为 Time.now.parse 即可。

关于ruby-on-rails - rails/事件记录 : Get a record made *AFTER* a particular date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3974048/

相关文章:

ruby-on-rails - 在 Rails 中, Controller 的前置过滤器中调用的方法是否会针对每个操作运行?

python - 要列出的命名元组字符串

android - 如何在android中实现将sqlite导出到excel/csv文件?

sql - 如何打开/编辑 .sdb 文件

javascript - Node JS+PostgreSQL : INSERT has more target columns than expressions

sql - Count(*) with order by not working on PostgreSQL which works on Oracle

ruby-on-rails - rake 数据库 :create throws "database does not exist" error with postgresql

ruby-on-rails - Rails 3 能够从 Microsoft Access 导入/导出吗?

mysql - rake db :migrate - 问题

ruby-on-rails - 如何使用 ActiveRecord 访问 Postgres 列默认值?