use*_*621 22 sql postgresql activerecord ruby-on-rails
我在数据库中有两个日期列 - from_date和to_date.
例:
from_date:2012-09-10to_date:2012-09-30today:2012-09-13如果today日期介于from_date和之间,我需要获取所有记录to_date.如何在SQL查询中执行此操作?
如果我已经加载了相应的记录,我可以很容易地决定,如果今天的日期介于from_date和之间to_date,但我不知道,如何直接从数据库中获取这些记录.
Pau*_*lgo 47
检查范围条件下的Rails指南:
Client.where(created_at: (Time.now.midnight - 1.day)..Time.now.midnight)
Run Code Online (Sandbox Code Playgroud)
这将产生以下SQL:
SELECT * FROM clients WHERE (clients.created_at BETWEEN '2008-12-21 00:00:00' AND '2008-12-22 00:00:00')
Run Code Online (Sandbox Code Playgroud)
Sal*_*lil 22
data = ModelName.where("today >= from_date AND today <= to_date")
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用:
Data = Model.where("date(now()) between from_date and to_date")
Run Code Online (Sandbox Code Playgroud)
data = ModelName.find(:all, :conditions => "today >= from_date and today <= to_date")
Run Code Online (Sandbox Code Playgroud)
一种安全而简单的方法是:
Model.where(':date BETWEEN from_date AND to_date', date: Date.current)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25133 次 |
| 最近记录: |