我有一个字段是DATETIME字段。选择两次之间的行
如何选择在上午12:00至上午8:30之间的行?
$query = "select * from table where TIME(changetime) between '12:00:00 and '08:30:00'";
它给了我零点击:当我在此键入查询
。
的changetime场有这样的日期:2015年7月14日10时57分57秒
我有一个字段是DATETIME字段。选择两次之间的行
如何选择在上午12:00至上午8:30之间的行?
$query = "select * from table where TIME(changetime) between '12:00:00 and '08:30:00'";
它给了我零点击:当我在此键入查询
。
的changetime场有这样的日期:2015年7月14日10时57分57秒
1)你不需要TIME(changetime),它很可能恶化您的搜索时间,因为MySQL会需要应用一个函数,而不是使用索引。
只使用changetime。
2)where changetime between '2015-07-14 10:57:57' and '2015-07-14 12:57:57'
http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between
3)你需要使用合适的范围 - 在你的例子END_DATE是在START_DATE之前。因此,之间将返回0(12:00:00> 08:30:00)
4)看@ Barmar的评论,也许你真的想在任何日期一段时间之间的条目,而不是日期时间之间
如果他像它只会在特定的日期找到行,而不是那些时间之间的所有日子。 – Barmar
12:00:00
是下午12点(中午),而不是上午12点(午夜)。您需要使用
WHERE TIME(changetime) BETWEEN '00:00:00' AND '08:30:00'
08:30:00是前12:00:00 - 又见http://stackoverflow.com/questions/4714899/mysql-compare-between-time –