gpt4 book ai didi

sql-server-2008 - 将日期时间舍入到四分之一分钟

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

我有一个函数可以将日期时间四舍五入到最近的一刻钟。
但是有没有一种方法可以四舍五入到最近的四分之一呢?

例子。

08:14:00 becomes 08:00:00
08:03:00 becomes 08:00:00
08:29:00 becomes 08:15:00
08:55:00 becomes 08:45:00

这就是我现在必须四舍五入到最近的四分之一。
(
@dt datetime
)
returns datetime
as
begin
declare @result datetime
declare @mm int
set @mm=datepart(minute,@dt)
set @result = dateadd(minute,-@mm + (round(@mm/cast(15 as float),0)*15) , @dt )

return @result

最佳答案

使用 SQL Server:

select cast( 
FLOOR( cast( GetDate() as float)*(24*4)) / (24*4)
as smalldatetime) AS "datetime_quarter"

策略是:
  • 将日期转换为浮点数,*24获取小时数,*4获取季度数
  • FLOOR 向下舍入
  • 通过 /(24*4) 转换回天数
  • 将天数转换为日期时间。 smalldatetime用于避免 float 舍入问题。

  • 这可以轻松调整以使用 ROUNDCEILING反而;或使用其他小时倍数代替 4 (宿舍)。

    关于sql-server-2008 - 将日期时间舍入到四分之一分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13738645/

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