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

如何用year(getdate())替换SQL Server LIKE语句中的固定年份通配符?

解决方案

原SQL语句是固定匹配month字段以'2023'开头的记录,要替换为动态获取当前年份并拼接通配符%的形式,根据你使用的数据库不同,语法略有差异:

1. SQL Server(原语句使用getdate(),大概率为此数据库)

修改后的SQL:

Select *
from table a 
where month like CAST(YEAR(GETDATE()) AS VARCHAR(4)) + '%'

这里需要把YEAR(GETDATE())返回的整数转换成字符串,再和%拼接——因为LIKE操作符要求右侧为字符串类型。

2. MySQL

若使用MySQL,获取当前年份用YEAR(NOW()),字符串拼接用CONCAT函数:

Select *
from table a 
where month like CONCAT(YEAR(NOW()), '%')

3. Oracle

Oracle中获取当前年份用EXTRACT(YEAR FROM SYSDATE),字符串拼接用||运算符:

Select *
from table a 
where month like EXTRACT(YEAR FROM SYSDATE) || '%'

额外注意

  • 请确保month字段的格式确实是「年份+其他内容」(比如'202301'、'2023-10'这类),这样以年份开头的匹配逻辑才和原语句完全一致。
  • 如果month字段是日期类型而非字符串,更推荐直接用日期函数提取年份做等值比较,查询效率更高,比如SQL Server可写成:
Select *
from table a 
where YEAR(month) = YEAR(GETDATE())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:08:12