SQL Server 2008 的 DATETIME2FROMPARTS 替代方案

Erd*_* Ay 2 sql-server date-format datetime

我正在尝试将日期时间值分开并将其构建在一起以删除分钟、秒等。我希望值是每小时一次。

通常这适用于 SQL Server 2012 机器:

DATETIME2FROMPARTS( DATEPART(year, datum), DATEPART(month, datum), DATEPART(day, datum), DATEPART(hour, datum), 0, 0, 0, 0) as dtHour
Run Code Online (Sandbox Code Playgroud)

但不幸的是在 SQL Server 2008 中它没有!我需要哪个功能才能完成相同的工作?

我还查找了此参考资料:Date&Time functions但这都仅与 SQL Server 2012 兼容。

Mik*_*son 5

你可以让它短一点。

dateadd(hour, datediff(hour, 0, datum), 0)
Run Code Online (Sandbox Code Playgroud)

这种计算的小时数1900-01-01 00:00:00.000datum并增加了价值1900-01-01 00:00:00.000