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

如何编写SQL查询匹配指定年份到区间型注册年字段?

区间年份匹配的SQL查询方案

假设你的数据表名为user_registrations(实际使用时替换为你的真实表名),以下是针对不同数据库的查询方案,可直接用来匹配输入年份2018对应的区间记录:

MySQL/MariaDB 实现

通过SUBSTRING_INDEX拆分区间字符串,转换为整数后做区间判断:

SELECT id, registration_year
FROM user_registrations
WHERE 
  CAST(SUBSTRING_INDEX(registration_year, '-', 1) AS UNSIGNED) <= 2018
  AND CAST(SUBSTRING_INDEX(registration_year, '-', -1) AS UNSIGNED) >= 2018;

PostgreSQL 实现

使用SPLIT_PART函数分割区间字符串,转成整数后进行匹配:

SELECT id, registration_year
FROM user_registrations
WHERE 
  CAST(SPLIT_PART(registration_year, '-', 1) AS INTEGER) <= 2018
  AND CAST(SPLIT_PART(registration_year, '-', 2) AS INTEGER) >= 2018;

SQL Server 实现

通过LEFT/RIGHT结合CHARINDEX截取区间两端的年份,转换为整数后判断:

SELECT id, registration_year
FROM user_registrations
WHERE 
  CAST(LEFT(registration_year, CHARINDEX('-', registration_year) - 1) AS INT) <= 2018
  AND CAST(RIGHT(registration_year, LEN(registration_year) - CHARINDEX('-', registration_year)) AS INT) >= 2018;

补充说明

如果需要动态传入年份参数(而非固定写死2018),可以将代码中的2018替换为对应数据库的参数占位符:

  • MySQL/MariaDB:用?
  • PostgreSQL:用$1
  • SQL Server:用@target_year

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 18:42:31