如何在 T-SQL 中舍入时间 [英] How to Round a Time in T-SQL
本文介绍了如何在 T-SQL 中舍入时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一个可以接收时间并将其四舍五入到下一个/上一个小时/半小时/四分之一/分钟的函数.
I'me looking for a function that would receive a time and would round it to the next/previous hour / half-hour / quarter / minute.
推荐答案
试试这个功能
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-一小时,...)
The 1st param is the time to be rounded and the 2nd will be base on your list (0.5-half hour, 1-one hour, ...)
这篇关于如何在 T-SQL 中舍入时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文