1 つの列に varchar (50) として「14:04:33」のような hr:min:sec 値を持つデータベースがあります。それぞれ 14:05:00 と 14:00:00 の最も近い 5 分に切り上げ/切り下げしたいのですが、どちらも varchar(50) である必要があります。それらをdatetimeに変換して切り上げようとしましたが、最も近い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))
ただし、最終的な出力は 1900 年 1 月 1 日午後 2 時です。
最も近い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))
最終的な出力は、1900 年 1 月 1 日午後 2 時 5 分です。SQL Server 2012での変換に適した関数を探しています。