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

如何编写SQL查询获取上周满65周岁人员的数据?

筛选近7天满65周岁的用户SQL解决方案

你的原查询逻辑完全不对,current_date - 65是取当前日期往前推65天的日期,这和用户满65周岁的条件毫无关联,自然查不到结果。

正确的思路是:计算用户满65周岁的日期(出生日期加上65年),再判断这个日期是否落在当前日期往前7天到当前日期的区间内。以下是不同数据库的实现代码:

  • PostgreSQL 版本:
SELECT *
FROM your_table
WHERE birth_date + INTERVAL '65 years' BETWEEN CURRENT_DATE - INTERVAL '7 days' AND CURRENT_DATE;
  • MySQL 版本:
SELECT *
FROM your_table
WHERE DATE_ADD(birth_date, INTERVAL 65 YEAR) BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND CURDATE();
  • SQL Server 版本:
SELECT *
FROM your_table
WHERE DATEADD(YEAR, 65, birth_date) BETWEEN DATEADD(DAY, -7, GETDATE()) AND GETDATE();

注意事项:

  • 把代码里的your_table替换成你实际使用的表名
  • 部分数据库对闰年、2月29日出生的用户有特殊处理逻辑,比如非闰年时会将2月29日的生日视为2月28日或3月1日,可根据业务需求调整判断规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:27:02