You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle SQL中将1分钟粒度股票数据转换为指定时间间隔数据

按指定时间间隔提取股票整分时刻Open值的实现方案

完全可以实现。由于你的表中已存在每分钟的唯一记录,且目标间隔的整分时刻(如5分钟间隔的14:30、14:35等)均包含在原数据中,只需通过筛选date列的分钟数匹配规则,直接提取对应记录的open值即可,无需使用聚合函数。

以下是主流数据库的具体实现代码:

MySQL

5分钟间隔

SELECT date, open
FROM stock_data
WHERE MINUTE(date) % 5 = 0;

15分钟间隔

SELECT date, open
FROM stock_data
WHERE MINUTE(date) % 15 = 0;

30分钟间隔

SELECT date, open
FROM stock_data
WHERE MINUTE(date) % 30 = 0;

1小时间隔

如果需匹配交易时段的小时起始(如09:15、10:15):

SELECT date, open
FROM stock_data
WHERE MINUTE(date) = 15;

如果需匹配自然小时整分(如10:00、11:00):

SELECT date, open
FROM stock_data
WHERE MINUTE(date) = 0;

PostgreSQL

5分钟间隔

SELECT date, open
FROM stock_data
WHERE EXTRACT(MINUTE FROM date) % 5 = 0;

15分钟间隔

SELECT date, open
FROM stock_data
WHERE EXTRACT(MINUTE FROM date) % 15 = 0;

30分钟间隔

SELECT date, open
FROM stock_data
WHERE EXTRACT(MINUTE FROM date) % 30 = 0;

1小时间隔

匹配交易时段小时起始:

SELECT date, open
FROM stock_data
WHERE EXTRACT(MINUTE FROM date) = 15;

匹配自然小时整分:

SELECT date, open
FROM stock_data
WHERE EXTRACT(MINUTE FROM date) = 0;

SQL Server

5分钟间隔

SELECT date, open
FROM stock_data
WHERE DATEPART(MINUTE, date) % 5 = 0;

15分钟间隔

SELECT date, open
FROM stock_data
WHERE DATEPART(MINUTE, date) % 15 = 0;

30分钟间隔

SELECT date, open
FROM stock_data
WHERE DATEPART(MINUTE, date) % 30 = 0;

1小时间隔

匹配交易时段小时起始:

SELECT date, open
FROM stock_data
WHERE DATEPART(MINUTE, date) = 15;

匹配自然小时整分:

SELECT date, open
FROM stock_data
WHERE DATEPART(MINUTE, date) = 0;

说明:若需限定日期范围,可在WHERE子句中添加date BETWEEN '起始日期 09:15:00' AND '结束日期 15:30:00'条件。

内容的提问来源于stack exchange,提问作者Logan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:07:39