2013-04-20 20 views
0

我有我的数据库表中的两个字段start_time和和end_time例如东西大于或等于工作时:MySQL查询中的两个日期时间的范围内得到物品与该范围的开头

start_time: 2013-04-20 13:07:00 
end_time: 2013-04-20 12:07:00 

我查询当前包含

where `start_time` >= '2013-04-20 14:13:20' AND `end_time` <= '2013-04-20 18:13:20' 

这缘于方式查询是start_time: 2013-04-20 13:07:00的结果不会拉,所以我寻求如何弥补这一想法。生成的拉时间已经将时间从当前时间设置回一小时,并将结束时间设置为距当前时间4小时。

+0

在启动前一个小时怎么能结束? – Barmar 2013-04-20 18:07:36

+0

您是否使用时间戳或日期时间?他们以不同的方式处理时区,这可能是您问题的原因。 – 2013-04-20 18:09:11

+0

我使用的是日期时间,而时区的事情是一个完全不同的问题,我也在与这个一起处理。致力于将现有代码转换为使用GMT,同时将所有日期时间记录转换为gmt等价物,以便我可以使用基于人员位置的偏移量。由于目前DB中的大部分日期时间记录都使用东部时区参考,而大部分用户都处于太平洋时区。原来的计划没有指出什么时候它编码..去图,总而言之,尽力解决这一切,我可以 – chris 2013-04-20 18:13:25

回答

-1

请勿在查询中使用>=<= 请使用类似这样的东西来修复它。 where (start_time > '2013-04-20 14:13:20' or start_time = '2013-04-20 14:13:20') AND (end_time < '2013-04-20 18:13:20' or end_time = '2013-04-20 18:13:20')

+0

为什么你不觉得'<='与时代? – Barmar 2013-04-20 18:08:27