从db中检索数据:如何仅考虑datetime字段中的日期?

时间:2017-05-25 10:07:48

标签: mysql ruby-on-rails ruby activerecord

我有一张t.string :created_time

的表格

它包含UTC格式的数据(例如2017-05-10T06:30:01+0000

我必须从具有特定日期的表中检索记录,但时间并不重要

date = Date.new(2017,05,10)
nodes = Node.where(created_time: date)
logger.info nodes.count 

这里我有0计数。如何对created_time值进行额外处理,以便我只能比较 date 部分?

2 个答案:

答案 0 :(得分:1)

像这样创建日期范围和查询

date = Date.new(2017,05,10)
nodes = Node.where(created_time: date.beginning_of_day..date.end_of_day)

您将获得当天的记录;)

<强>更新

为什么created_at一个string ??

试试吧,

Node.where('DATE(nodes.created_time) = ?', date)

答案 1 :(得分:0)

从mysql表中选择日期作为日期,就像这样

SELECT DATE(date_time_field) FROM `yourtable`;