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

Amazon Athena中DATE类型出生日期字段的处理与运算实现方法

Amazon Athena 出生日期字段处理SQL实现

以下实现完全适配Athena原生Trino(原Presto)语法,所有函数均为内置支持:

SELECT
  birth_date,
  -- 出生年份分组标记
  CASE
    WHEN EXTRACT(YEAR FROM birth_date) < 2000 THEN 'pre-2000'
    ELSE 'post-2000'
  END AS birth_cohort,
  -- 计算当前日期距离出生日期的天数
  DATE_DIFF('day', birth_date, CURRENT_DATE) AS days_from_birth,
  -- 自定义日期格式转换
  DATE_FORMAT(birth_date, '%Yy %mm %dd') AS formatted_birth_date
FROM
  -- 替换为你的实际表名
  user_info
-- 仅保留2000年及以后出生的记录
WHERE
  birth_date >= DATE '2000-01-01'

各需求实现说明

  • 需求1(年份标记):通过CASE WHEN条件判断,结合EXTRACT(YEAR FROM birth_date)提取出生年份匹配对应标签即可,也可以直接用日期比较替代年份提取获得更高性能。
  • 需求2(结果筛选):直接在WHERE子句过滤日期birth_date >= DATE '2000-01-01',比提取年份判断效率更高,若表按出生日期分区还可以命中分区裁剪。
  • 需求3(天数计算):内置函数DATE_DIFF指定时间单位为day,传入起始日期(出生日期)和结束日期(当前日期CURRENT_DATE)即可得到间隔整数天数。
  • 需求4(自定义格式):DATE_FORMAT的格式化串中,%Y对应4位年份、%m对应2位月份、%d对应2位日期,在占位符后直接拼接y/m/d字符即可得到1990y 11m 01d格式的结果。

若你的出生日期字段为字符串类型,需要先通过DATE_PARSE(birth_date_str, '%Y-%m-%d')转为DATE类型再执行上述处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:04