将日期时间值四舍五入到最接近的半小时

我要求将datetime2值四舍五入到最近的半小时。例如,“ 10/17/2013 12:10:00.123”将四舍五入为“ 10/17/201312:00:00.0”,而“ 10/17/2013 12:34:17.123”将四舍五入为10/17 / 2013

12:30:00.0’。我的第一个想法是创建一个UDF,它将日期和时间分开,并以这种方式进行。但是,我想知道是否可以在单个T-SQL语句中完成类似的操作?

我正在使用SQL Server 2012,并且列的数据类型为dateTime2(无法转换为浮点数!)

回答:

伊恩(Ian)的回答很好,但其中包含不必要的转换。我建议

SELECT CONVERT(smalldatetime, ROUND(CAST([columnname] AS float) * 48.0,0,1)/48.0) FROM [tableName]

如果您想四舍五入到最近的半小时而不是总是四舍五入,请使用

SELECT CONVERT(smalldatetime, ROUND(CAST([columnname] AS float) * 48.0,0)/48.0) FROM [tableName]

以上是 将日期时间值四舍五入到最接近的半小时 的全部内容, 来源链接: utcz.com/qa/413328.html

回到顶部