我有在数据库表中创建文章的日期。我从八月到今天都有文章。
我尝试在ActiveRecord中创建一个SQL查询,以获取今天创建的文章。
例如,今天是1月14日,我试图将那些于9月14日创建的文章发布到今天。
我试过这样的事情:
today = Date.today
day = today.strftime('%d')
day_next = (today + 1.day).strftime('%d')
Article.where('created_at >= ? AND created_at <= ?', day, day_next) #day = 14, day_next = 15
但这并没有返回正确的陈述,因为文章于12月14日和10月14日发布。这个查询什么也没有给我回复。
答案 0 :(得分:1)
created_at
是正常的日期时间/时间戳字段,您应该使用created_at
将DAY()
转换为当天,然后将其直接与普通的Ruby Date对象进行比较。
day = Date.today
Article.where 'DAY( created_at ) = DAY( ? )', day
# or just...
Article.where 'DAY( created_at ) = DAY( CURRENT_DATE() )'
(最初误读你的问题;回答更新。)