如何从特定时间间隔的数据库中获取记录?
问题描述:
我的表格有每分钟的记录,现在我想以5分钟的间隔读取记录!如何从特定时间间隔的数据库中获取记录?
例如
order date
1 12:01
2 12:02
....
10 12:10
11 12:11
预期结果:订购6和11
它可以在数据库级别做什么?
我使用Django与MySQL
答
SomeModel.objects.extra(select={'fiveminutes': 'MINUTE(date)%5=0'},
where='fiveminutes=1')
+0
+1删除我的答案这一个:) – Andy 2010-03-19 21:09:07
答
你想对基于在一个小时的十二五分钟的时间间隔组的订单?以5分钟为间隔,我的意思是这样一段时间间隔映射:(0..4 => 0,5..9 => 1,10..14 => 2,...)。
all_with_interval = SomeModel.objects.extra(
select={'interval': "strftime('%%M', date)/5"})
just_minutes_5_to_9 = all_with_interval.extra(
where=["interval=%d"], params=[0])
或者,也许你想从一个给定的START_TIME一个五分钟的范围:)
end_time = start_time + datetime.timedelta(minutes=5)
start_plus_5_inclusive = SomeModel.filter(date__range=(start_time, end_time)
start_plus_5_exclusive = start_plus_5_inclusive.exclude(end_time)
的排除(在那里,因为range filter是包容性的,你可能要排除这个当前问题的END_TIME 。如果您不排除end_time,您可以在5分钟+ 1秒的时间范围内获取记录。
答
如果我知道你想什么,
例如,在表中每5记录?或者换句话说,每个记录的顺序可以被5整除?
我从我的脑袋做这个,因为我没有一个MySQL数据库在这里玩
SELECT * from Table where (order MOD 5) = 1;
(= 1会给你整除5 +1所以6,11,16等)
尝试一下,看看你是否弄湿你要找的东西。
更多关于MOD功能
见this page你可以添加你想要检索什么数据的例子吗? – Dominik 2010-03-19 20:56:48
以5分钟的时间间隔? 您希望每5分钟产生一个记录集,或者您想要从特定的5分钟间隔读取记录? (谢谢你指出它Ignacio:D) – AlexRednic 2010-03-19 21:03:24
我认为你需要澄清你的问题,这是非常容易混淆 – 2010-03-20 23:36:23