17
我在尋找一個能夠接收時間並將其舍入到下一個/上一個小時/半小時/四分之一/分鐘的函數。如何在T-SQL中查找時間
我在尋找一個能夠接收時間並將其舍入到下一個/上一個小時/半小時/四分之一/分鐘的函數。如何在T-SQL中查找時間
試試這個功能
CREATE FUNCTION [dbo].[RoundTime] (@Time datetime, @RoundTo float)
RETURNS datetime
AS
BEGIN
DECLARE @RoundedTime smalldatetime
DECLARE @Multiplier float
SET @Multiplier= 24.0/@RoundTo
SET @RoundedTime= ROUND(CAST(CAST(CONVERT(varchar,@Time,121) AS datetime) AS float) * @Multiplier,0)/@Multiplier
RETURN @RoundedTime
END
select dbo.roundtime('13:15',0.5)
的第一個參數是要舍入的時間和第二個將是你的列表(0.5個半小時,1一個小時......)
非常感謝。我用它在網上四捨五入到15分鐘
convert(smalldatetime,ROUND(cast(TDatalog.Time as float) * (24/.25),0)/(24/.25)) AS RoundedTime
如果在地方的113使用121它將得到日期部分正確也 – vzczc 2008-10-30 11:54:35