我需要一个函数,它总是会在 SQL Server 中四舍五入到最接近的整数或半小时。
前任。
1.2 = 1.5
1.5 = 1.5
1.6 = 2.0
1.0 = 1.0
0.2 = 0.5
0.8 = 1.0
我发现了很多关于如何解决这个问题的选项——但我想要一个专门用于此目的的有效选项。
谢谢..
我需要一个函数,它总是会在 SQL Server 中四舍五入到最接近的整数或半小时。
前任。
1.2 = 1.5
1.5 = 1.5
1.6 = 2.0
1.0 = 1.0
0.2 = 0.5
0.8 = 1.0
我发现了很多关于如何解决这个问题的选项——但我想要一个专门用于此目的的有效选项。
谢谢..
如果您正在处理数字,最简单的方法是乘以 2,取上限(四舍五入到最接近的整数),然后除以 2。
Select Ceiling(1.2 * 2) / 2
Select Ceiling(1.6 * 2) / 2
由于您的问题提到了“整个或半小时”,因此这里有一些代码可以容纳 DateTime 数据:
Declare @Temp Table(Data DateTime)
Insert Into @Temp Values('20131114 11:00')
Insert Into @Temp Values('20131114 11:15')
Insert Into @Temp Values('20131114 11:30')
Insert Into @Temp Values('20131114 11:45')
Insert Into @Temp Values('20131114 11:59')
Select Data, DateAdd(Minute, Ceiling(DateDiff(Minute, '0:00', Data) / 30.0) * 30, '0:00')
From @Temp