我有一个DATETIME字段。
如何选择介于凌晨12:00到8:30之间的行?
当我输入此查询时:
{{1}}
它给我零点击。
更改时间字段的日期如下:2015-07-14 10:57:57
答案 0 :(得分:3)
12:00:00
是下午12点(中午),而不是上午12点(午夜)。你需要使用
WHERE TIME(changetime) BETWEEN '00:00:00' AND '08:30:00'
答案 1 :(得分:0)
1)你不需要TIME(更改时间),它可能会恶化你的搜索时间,因为mysql需要应用一个函数而不是使用索引。
只使用更改时间。
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的评论,也许你真的希望在任何日期的某个时间之间输入,而不是在日期之间输入