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

在T-SQL的DATEDIFF函数中传入-1作为日期参数代表什么?

关于T-SQL代码中-1的解释

在T-SQL里,整数可以隐式转换为datetime类型,转换规则是以1900-01-01作为基准日期:

  • 正整数代表基准日期之后的天数
  • 负整数代表基准日期之前的天数

你代码里传入DATEDIFF的-1,实际对应的日期是1899-12-31(也就是1900-01-01往前推1天)。

顺带拆解这段代码的逻辑

这段代码的作用是获取上个月的最后一天,分步来看:

  1. DATEDIFF(MONTH, -1, GETDATE()):计算从1899-12-31到当前日期的月份跨度,得到当前日期所在月份相对于基准的总月份数
  2. 减去1后,得到上个月相对于基准的总月份数
  3. DATEADD(MONTH, 上述结果, -1):从1899-12-31开始加上对应月份数,最终得到上个月的最后一天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:20:22