1

我想选择一天中的特定时间段(15 分钟),然后我只想获取过去一年中每一天的历史数据。我根本不知道在哪里放INTERVAL 1 DAYMySQL。我想从(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
4

1 回答 1

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)请每天使用。

于 2013-11-15T08:50:16.417 回答