Google Sheets Query日期时间筛选异常:仅返回表头无数据
问题分析与解决方案
核心问题
你遇到的无数据返回问题,主要源于两个关键错误:
- 数据源时间范围不匹配:你使用的
slice=year1month1参数获取的是Alpha Vantage接口返回的最近1个月股票数据,而非你需要的2022年7月数据,数据源中根本不存在2022/7/12的记录。 - 筛选时间范围无效:美股(IBM)常规交易时间为美国东部时间(EDT/EST)9:30-16:00,你筛选的4:15-9:30属于盘前时段,该时段无常规交易数据(Alpha Vantage的日内数据默认不包含盘前交易)。
修正后的公式
步骤1:调整slice参数获取对应年份数据
Alpha Vantage的slice参数格式为yearXmonthY,规则如下:
yearX:X=1代表最近1年,X=2代表前1年,X=3代表前2年(以此类推)monthY:Y为1-12对应月份
要获取2022年7月的数据,若当前年份为2024年,需使用slice=year3month7。
步骤2:修正筛选时间范围
将筛选范围改为美股交易时段(美东时间9:30-16:00),确保与数据源的交易时间匹配。
最终公式(假设J1单元格为目标美东日期2022/7/12):
=QUERY(IMPORTDATA("https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY_EXTENDED&symbol=IBM&interval=15min&slice=year3month7&apikey=demo"), "select Col1, Col3, Col6 WHERE Col1 >= datetime '"&TEXT(J1+TIME(9,30,0),"yyyy-mm-dd HH:mm:ss")&"' and Col1 <= datetime '"&TEXT(J1+TIME(16,0,0),"yyyy-mm-dd HH:mm:ss")&"'", 1)
额外注意事项
- API密钥限制:
demo密钥有访问频率和数据量限制,建议在Alpha Vantage官网申请免费个人密钥替换,避免请求失败。 - 时区转换:若J1单元格为本地时区(如北京时间),需先转换为美国东部时间再筛选,例如北京时间比美东夏令时快12小时,转换公式为
J1-TIME(12,0,0)。
内容的提问来源于stack exchange,提问作者PhilNos
相关产品推荐
相关产品推荐

