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

SQL Server 2019中DATEPART(HOUR FROM ...)语法兼容性及性质问询

SQL Server 2019 DATEPART特殊语法的问题解析

你碰到的这个用FROM替代逗号的DATEPART写法——SELECT DATEPART(HOUR FROM DATEADD(HOUR, -4, GETDATE())),是SQL Server 2019后期版本新增的标准SQL兼容扩展,既不是临时特性、Bug,也不是SSMS偷偷改写的结果。

具体说明:

  • 这种写法是ANSI SQL:2016标准里规定的DATEPART调用方式,SQL Server 2019在后续累积更新(比如15.0.2095这类版本)里加了对它的支持,目的是拉近和标准SQL的兼容性,让习惯写标准SQL的开发者不用改写法就能在SQL Server里用。
  • 版本差异的原因很简单:SQL Server 2019的初始版本(像v15.0.2000.5)没带这个特性,是后面的更新补上的,所以不同小版本支持情况不一样。
  • 至于没文档说明,是因为这类小的语法兼容更新通常不会单独写大篇幅文档,一般会藏在累积更新的发布说明里,或者后续官方文档更新时补到DATEPART的章节里。

验证方法:

你可以在不同版本的实例里直接测试:

  • 旧版本(比如v15.0.2000.5)执行这个语句会报语法错误;
  • 新版本(比如15.0.2095)能正常运行,结果和传统写法SELECT DATEPART(HOUR, DATEADD(HOUR, -4, GETDATE()))完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:01:20