我有一个数据库,其中一列的 hr:min:sec 值如“14:04:33”作为 varchar (50)。我想向上/向下舍入到最接近的 5 分钟:分别为 14:05:00 和 14:00:00,并且它们都需要是 varchar(50)。我试图通过将它们转换为日期时间来进行四舍五入,我用来四舍五入到最接近 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))
但是最终输出是 Jan 1 1900 2:00 PM
我用来四舍五入到最接近 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))
最终输出是 Jan 1 1900 2:05 PM。我正在寻找适合在sql server 2012中进行转换的函数。