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

如何将SQL Server中结束日期的时间设为23:59:59而非00:00:00

解决SQL结束日期时间设为23:59:59的问题

直接修改@EndDate的赋值语句即可,通过先获取次日的起始时间,再减去1秒来得到当日的23:59:59:

declare @Date datetime 
declare @StartDate datetime 
declare @EndDate DateTime

set @date = GetDate()
Set @StartDate = DATEADD(M, DATEDIFF(M,0,@date),0)
-- 修改这里:先取次日0点,再减1秒得到当日23:59:59
set @EndDate = DATEADD(SECOND, -1, DATEADD(DD, DATEDIFF(DD, 0, @date) + 1, 0))

select @StartDate,@EndDate

补充说明

  • DATEDIFF(DD, 0, @date) + 1 计算从0基准日期到@date的天数再加1,得到次日的天数偏移量
  • DATEADD(DD, ..., 0) 将天数偏移量转换为次日的00:00:00时间点
  • 最后用DATEADD(SECOND, -1, ...) 减去1秒,得到当日的23:59:59

如果要适配datetime类型的3毫秒精度(避免漏掉接近23:59:59.997的记录),可以用更严谨的写法:

set @EndDate = DATEADD(MILLISECOND, -3, DATEADD(DD, DATEDIFF(DD, 0, @date) + 1, 0))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:17:03