我有一个像这样的SQL列:
| id | name | date | hour |
我想选择指定的start_date
,start_hour
和end_date
,end_hour
之间的所有名称。
对于这样的数据:
| 1 | one | 2014-12-29 | 11:00 |
| 2 | two | 2014-12-30 | 09:00 |
| 3 | three | 2014-12-30 | 11:00 |
值:
start_date = 2014-12-29
start_hour = 11:00
end_date = 2014-12-30
end_hour = 10:00`
它应该返回:one, two
。
答案 0 :(得分:0)
SELECT *
FROM table
WHERE date > '2014-12-28'
AND hour > '10:59'
AND date < '2014-12-31'
AND hour < '10:01'
答案 1 :(得分:0)
这看起来像一个基本的SQL查询。尝试以下方法:
select a.name
from (select * from data_table
where date >= start_date
and date <= end_date) as a
where a.hour >= start_hour
and a.hour <= end_hour
基本思想是首先形成所有有效日期的数据集,然后从那里拉出有效时间。另一个可能更直接的方法是创建一个日期时间字段,然后拉上该键。
请告诉我这是否适合您。