Mysql SQL在两列中选择日期和小时之间的数据
我有这样一个SQL列:Mysql SQL在两列中选择日期和小时之间的数据,mysql,sql,Mysql,Sql,我有这样一个SQL列: | id | name | date | hour | | 1 | one | 2014-12-29 | 11:00 | | 2 | two | 2014-12-30 | 09:00 | | 3 | three | 2014-12-30 | 11:00 | 我想选择指定的开始日期、开始时间和结束日期、结束时间之间的所有名称 对于此类数据: | id | name | date | hour | | 1 | one | 2014-12-29 |
| id | name | date | hour |
| 1 | one | 2014-12-29 | 11:00 |
| 2 | two | 2014-12-30 | 09:00 |
| 3 | three | 2014-12-30 | 11:00 |
我想选择指定的开始日期、开始时间和结束日期、结束时间之间的所有名称
对于此类数据:
| id | name | date | 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`
它应该返回:1,2。这看起来像一个基本的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
基本思想是首先形成一个包含所有时间的所有有效天数的数据集,然后从中提取有效时间。另一种可能更直接的方法是创建datetime字段,然后使用该键
让我知道这对你有用。
如果你可以把你的日期时间保存为时间戳,那么链接会帮助你。如果你愿意,考虑下面这个简单的两步过程:1。如果您还没有这样做,请提供适当的DDL和/或SQLFIDLE,以便我们可以更轻松地复制问题。2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。感谢您的回复。它在所有的日子里只能工作相同的时间,而这并不是我想要的。创建一个新字段可能是最好的解决方案。您是想用sql来实现这一点,还是用php或c之类的语言编程?如果您使用的是编程语言,您可以尝试使用for循环。这样,对于每个开始和结束日期,您可以有一个唯一的开始和结束时间。