如何在 T-SQL 中舍入时间 [英] How to Round a Time in T-SQL

查看:54
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆