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

寻求按日期和小时分组的简洁SQL代码:优化DATETIME截断脚本

按日期和小时分组的简洁实现方案

你原脚本的作用是将当前时间(GETDATE())截断到小时,并格式化为yyyy-MM-dd HH:00:00.00的字符串格式,针对大数据表分组场景,以下几种更简洁且低开销的写法可以替代:

1. 纯日期运算(推荐,性能最优)

这种方式通过日期偏移计算直接截断到小时,返回datetime类型,避免了大量字符串拼接操作,非常适合大数据表分组:

SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, GETDATE()), 0)

如果需要和原脚本完全一致的字符串格式,只需套一层CONVERT:

SELECT CONVERT(VARCHAR(19), DATEADD(HOUR, DATEDIFF(HOUR, 0, GETDATE()), 0), 120) + '.00'

其中120是SQL Server的日期样式码,对应yyyy-MM-dd HH:mm:ss格式,追加.00即可匹配原脚本的输出结尾。

2. 直接格式化(SQL Server 2012+)

如果你的SQL Server版本在2012及以上,可以用FORMAT函数一步到位生成目标字符串:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:00:00.00')

注意:FORMAT的性能略低于纯日期运算的方式,大数据量场景优先推荐第一种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:23:29