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

如何编写Athena查询筛选指定日期区间及时段的数据

Athena查询:同时筛选日期区间与时段范围

要同时满足日期区间和时段范围的筛选,只需将两个条件用AND连接即可。核心是先把字符串类型的date_time解析为时间戳,再分别提取日期和小时进行过滤。

基础查询示例

SELECT *
FROM your_table_name
WHERE 
  -- 筛选2022-01-01至2023-01-01的日期区间
  CAST(date_parse(date_time, '%y-%m-%d %h:%i:%s') AS DATE) BETWEEN DATE '2022-01-01' AND DATE '2023-01-01'
  AND
  -- 筛选早6点至下午3点(小时数6到15)的时段
  HOUR(date_parse(date_time, '%y-%m-%d %h:%i:%s')) BETWEEN 6 AND 15;

优化版(避免重复解析时间)

如果date_time字段解析成本较高,可以先用CTE提前转换一次:

WITH parsed_data AS (
  SELECT 
    *,
    date_parse(date_time, '%y-%m-%d %h:%i:%s') AS parsed_datetime
  FROM your_table_name
)
SELECT *
FROM parsed_data
WHERE 
  CAST(parsed_datetime AS DATE) BETWEEN DATE '2022-01-01' AND DATE '2023-01-01'
  AND HOUR(parsed_datetime) BETWEEN 6 AND 15;

注意事项

  • 确认date_parse的格式字符串和date_time的实际格式匹配:如果是24小时制时间,要把%h改成%H
  • 日期区间边界可按需调整:比如要排除2023-01-01当天的所有数据,可写成CAST(parsed_datetime AS DATE) >= DATE '2022-01-01' AND CAST(parsed_datetime AS DATE) < DATE '2023-01-01'
  • 时段范围如果不需要包含结束点(比如到下午3点整之前),可写成HOUR(parsed_datetime) >= 6 AND HOUR(parsed_datetime) < 15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:42:06