如何查询去年一天中的特定时段

时间:2013-11-15 08:38:15

标签: mysql

我想选择一天中的特定时段(15分钟)然后我只想获取过去一年中每天的历史数据。我根本不知道将INTERVAL 1 DAY放在MySQL中的哪个位置。我想从(2012-10-15到2013-10-15)获取数据。

所以这是我的示例代码:

select *, FROM_UNIXTIME(timestamp/1000000000) 
FROM pulsars
WHERE timestamp between UNIX_TIMESTAMP('2013-10-15 02:00:00')*1e9 
AND UNIX_TIMESTAMP('2013-10-15 02:15:00')*1e9 
AND name = 'GEMINGA'
ORDER by timestamp
LIMIT 0,100000000

1 个答案:

答案 0 :(得分:1)

select [...]
from pulsars 
where time(FROM_UNIXTIME(timestamp)) between time('02:00:00') and time('02:15:00')
and name = 'GEMINGA'
and timestamp between unix_timestamp('2012-10-15') and unix_timestamp('2013-10-15')
group by date(FROM_UNIXTIME(timestamp));

time()函数将仅从您的时间戳中提取白天。我将日期转换为where子句中的unix_timestamp,因为我猜时间戳有索引,因此查询会更快。按天分组每天给出一行。由于我不知道你的数据,你必须自己做的选择中的聚合函数。

如果您选择每一天,请按小组分开,并每天使用timestamp between unix_timestamp(select_date) and unix_timestamp(select_date + interval 1 day)