[英]Rounding up/down to the nearest 5 minutes where hh:mm:ss value is in varchar form
I have a database which one column has a hr:min:sec value like "14:04:33" as varchar (50). 我有一个数据库,其中一列具有hr:min:sec值,例如“ 14:04:33”作为varchar(50)。 I want to round up/down to the nearest 5 min: 14:05:00 and 14:00:00 respectively and both of them needs to be varchar(50).
我想向上/向下舍入到最接近的5分钟:分别是14:05:00和14:00:00,它们两个都必须是varchar(50)。 I tried to round up by converting them to datetime and the code I used to round down to the nearest 5 min was:
我试图通过将它们转换为日期时间进行舍入,并且我舍入到最接近的5分钟的代码是:
DECLARE @Time varchar (50)
SELECT @Time ='14:04:33'
SELECT CAST(CONVERT(datetime,(FLOOR(CAST(CONVERT(datetime,@Time,108)As float )*288)/288), 108)AS varchar (50))
however the final output is Jan 1 1900 2:00 PM 但是最终输出是1900年1月1日2:00 PM
and the code I used to round up to the nearest 5 min was: 我用来四舍五入到最接近5分钟的代码是:
DECLARE @Time varchar (50)
SELECT @Time ='14:04:33'
SELECT CAST(CONVERT(datetime,(CEILING(CAST(CONVERT(datetime,@Time,108)As float)*288)/288), 108) AS varchar(50))
And the final output is Jan 1 1900 2:05 PM. 最终输出是1900年1月1日下午2:05。 I am looking for a suitable function for conversion in sql server 2012 .
我正在寻找适合在sql server 2012中进行转换的函数。
try this: 尝试这个:
Floor Value -- 底价-
DECLARE @Time varchar (50)
SELECT @Time ='14:04:33'
SELECT CONVERT(time,CONVERT(varchar(2),DATEPART(HH,@Time))+':'+CONVERT(varchar(2),(DATEPART(MI,@Time)-DATEPART(MI,@Time)%5))+':00')
Ceil Value -- 细胞价值-
DECLARE @Time varchar (50)
SELECT @Time ='14:04:33'
SELECT DATEADD(MI,5,CONVERT(time,CONVERT(varchar(2),DATEPART(HH,@Time))+':'+CONVERT(varchar(2),(DATEPART(MI,@Time)-DATEPART(MI,@Time)%5))+':00'))
If you're on SQL 2012, you can use the new date & time functions. 如果您使用的是SQL 2012,则可以使用新的日期和时间函数。 This way will round down to the nearest 5 minutes:
这种方法将舍入到最近的5分钟:
DECLARE @When VARCHAR(50) = '14:22:33'
DECLARE @Time TIME = CAST(@When AS TIME)
SELECT TIMEFROMPARTS
(
DATEPART(HOUR, @Time), --Hour
DATEPART(MINUTE, @Time) / 5 * 5, --Minute
0, --Second
0, --Fraction
0 --Precision
)
http://msdn.microsoft.com/en-us/library/ms186724.aspx http://msdn.microsoft.com/en-us/library/ms186724.aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.