SQL在两列中选择日期和小时之间的数据

时间:2014-12-29 22:19:59

标签: mysql sql

我有一个像这样的SQL列:

| id | name | date | hour |

我想选择指定的start_datestart_hourend_dateend_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

2 个答案:

答案 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

基本思想是首先形成所有有效日期的数据集,然后从那里拉出有效时间。另一个可能更直接的方法是创建一个日期时间字段,然后拉上该键。

请告诉我这是否适合您。