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

如何从SQL日期类型字段中筛选出指定年份(如2021年)的对应数据

SQL筛选2021年日期数据方案

首先明确前提:你的字段是原生日期类型,你看到的31-oct-2020只是数据库客户端的展示格式,底层存储为标准日期结构,不需要做字符串解析处理。

优先推荐使用日期范围匹配的写法,该写法可以命中日期字段上的索引,大表查询性能远高于对字段做函数计算后筛选的写法。

全数据库通用写法

适用MySQL、PostgreSQL、Oracle、SQL Server等绝大多数主流数据库,性能最优:

SELECT * FROM 替换为你的表名
WHERE 替换为你的日期字段名 >= '2021-01-01' 
  AND 替换为你的日期字段名 < '2022-01-01';

如果你的日期字段带时分秒,该写法也可以完整覆盖2021年1月1日00:00:00到2021年12月31日23:59:59的所有数据,不会出现边界遗漏。

各数据库简化写法

如果你对查询性能要求不高,或者表数据量很小,可以用更直观的年份提取写法:

  • MySQL/PostgreSQL
SELECT * FROM 替换为你的表名
WHERE YEAR(替换为你的日期字段名) = 2021;
  • Oracle
SELECT * FROM 替换为你的表名
WHERE EXTRACT(YEAR FROM 替换为你的日期字段名) = 2021;
  • SQL Server
SELECT * FROM 替换为你的表名
WHERE DATEPART(YEAR, 替换为你的日期字段名) = 2021;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:04