Jim*_*Jim 4 sql-server rounding
我需要一个函数,它总是在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
Run Code Online (Sandbox Code Playgroud)
我找到了很多关于如何解决这个问题的选择 - 但我希望有一个有效的特定目的.
谢谢..
如果你正在处理数字,最简单的方法是乘以2,取上限(向上舍入到最接近的整数),然后除以2.
Select Ceiling(1.2 * 2) / 2
Select Ceiling(1.6 * 2) / 2
Run Code Online (Sandbox Code Playgroud)
由于您的问题提到"整个或半小时",这里有一些容纳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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |