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

SQL Server 2014中CURRENT_DATE语法错误及近2年半数据筛选解决

解决SQL Server 2014中CURRENT_DATE语法错误及日期筛选问题

错误原因

SQL Server 2014不支持CURRENT_DATE()函数(这是MySQL、PostgreSQL等数据库的语法),同时直接用365*2+366/2硬编码天数的方式计算2年半,会忽略闰年和不同月份天数差异,导致日期筛选不准确。

修改后的SQL代码

select distinct 
    ac.people_id, ac.first_name, ac.last_name, ac.id_no, 
    ad.city, ed.is_service_event, co.description as County,
    pe.program_name, pe.program_start_date, pe.program_end_date, 
    el.actual_date, el.approved_date, el.program_providing_service, 
    el.duration, ed.event_name
from
    all_clients_view ac
inner join 
    address ad on ad.people_id = ac.people_id
left join 
    county co on ad.county = co.county_id
inner join 
    program_enrollment_expanded_view pe on pe.people_id = ac.people_id
inner join 
    event_log el on ac.people_id = el.people_id
inner join 
    event_definition ed on el.event_definition_id = ed.event_definition_id
where 
    el.actual_date > DATEADD(MONTH, -30, GETDATE()) -- 2年半=30个月,用DATEADD精确计算

关键修改点

  • 替换日期函数:把CURRENT_DATE()换成SQL Server支持的GETDATE()(或CURRENT_TIMESTAMP,两者功能完全一致,返回当前系统日期时间)。
  • 精确计算日期范围:用DATEADD(MONTH, -30, GETDATE())替代硬编码天数——2年半等于30个月,这种方式自动处理闰年、月份天数差异问题,确保筛选范围准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:24:26