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

如何在SQL中查询任意年份3月1日至3月10日的数据?

解决方法

针对筛选任意年份3月1日至3月10日数据的需求,可通过提取日期中的月份和日期部分来实现,以下是几种通用且简便的写法:

方法一:使用日期提取函数

通过EXTRACT(适用于PostgreSQL、Oracle等多数数据库)提取月份和日期进行判断:

WHERE 
  EXTRACT(MONTH FROM distinct_policy.policy_created_date_time) = 3
  AND EXTRACT(DAY FROM distinct_policy.policy_created_date_time) BETWEEN 1 AND 10

如果是MySQL,可替换为MONTH()和DAY()函数:

WHERE 
  MONTH(distinct_policy.policy_created_date_time) = 3
  AND DAY(distinct_policy.policy_created_date_time) BETWEEN 1 AND 10

方法二:转换为月日字符串判断

将日期转换为MM-DD格式的字符串,直接匹配范围:

WHERE TO_CHAR(distinct_policy.policy_created_date_time, 'MM-DD') BETWEEN '03-01' AND '03-10'

MySQL中对应使用DATE_FORMAT函数:

WHERE DATE_FORMAT(distinct_policy.policy_created_date_time, '%m-%d') BETWEEN '03-01' AND '03-10'

注意事项

  • 确保日期转换后的格式是两位月份+两位日期(如03-01而非3-1),避免字符串比较时出现逻辑错误。
  • 若数据库支持函数索引,可考虑给EXTRACT(MONTH FROM ...)或TO_CHAR(..., 'MM-DD')创建索引,提升查询效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:47:05