gpt4 book ai didi

sql-server - SQL Server 向上舍入日期时间

转载 作者:行者123 更新时间:2023-12-04 22:18:38 26 4
gpt4 key购买 nike

我需要一个向上取整到最接近的 x 分钟的函数。我找到了下面的那个,但它四舍五入到最接近的 x 分钟。根据另一个值,我需要将其四舍五入到最接近的半小时或小时。

CREATE FUNCTION [dbo].[RoundTime] (@Time DATETIME, @RoundToMin INT)
RETURNS DATETIME
AS
BEGIN
RETURN ROUND(CAST(CAST(CONVERT(VARCHAR,@Time,121) AS DATETIME) AS FLOAT) * (1440/@RoundToMin),0)/(1440/@RoundToMin)
END
GO

最佳答案

这会将您的函数更改为四舍五入到任意分钟数。

CREATE FUNCTION [dbo].[RoundUpTime] (@Time DATETIME, @RoundToMin INT)
RETURNS DATETIME
AS
BEGIN
return dateadd(mi, - datepart(mi, @time) + (datepart(mi, @time) + @roundToMin - 1) / @roundToMin * @roundToMin, @Time)
END
GO

请注意,我将名称更改为 RoundUpTime。请注意,它仅适用于 MINUTE 部分,并忽略秒和毫秒。

select dbo.RoundUpTime('20121212 12:30:00.003', 30)
--
2012-12-12 12:30

关于sql-server - SQL Server 向上舍入日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13388038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com