【问题标题】:Calc number of weeks between two dates in SQL Server Round Up计算 SQL Server Round Up 中两个日期之间的周数
【发布时间】:2016-05-02 22:47:27
【问题描述】:

如何计算四舍五入的两个日期之间的周差。

这意味着即使两个日期之间有 1 天,它也算作“周”。

datediff(ww, Date1, Date2) 是否有改进版本,它允许使用参数以便我们选择是否向上/向下舍入?

我想到的一种方法是计算两个日期之间的“天数”,将该数字除以 7 天,如果存在余数,则再加一天。

提前致谢。

【问题讨论】:

  • 你想的方法没有错(除以7并四舍五入)。
  • ( Days + 6 ) / 7。一般来说:( Things + ThingsPerGroup - 1 ) / ThingsPerGroup 使用整数除法。一件事将总和推高至ThingsPerGroup,而鲍勃是你的叔叔。

标签: sql-server tsql datediff


【解决方案1】:
declare @dt1 datetime = '2016-01-01'
declare @dt2 datetime = '2016-01-07'
select ceiling(convert(float, abs(datediff(day, @dt1, @dt2))) / 7)

【讨论】:

  • 谢谢,我有类似的东西。
  • 感谢您的帮助!
【解决方案2】:
DECLARE @Date1 DATE, @Date2 DATE
SET @Date1 = '2016-04-24'
SET @Date2 = '2016-05-09'

SELECT FLOOR(DATEDIFF(dd,@Date1,@Date2))/7 +
    CASE DATEDIFF(dd,@Date1,@Date2)%7 WHEN 0 THEN 0 ELSE 1 END

【讨论】:

  • 谢谢,这是一个很好的方法 :) 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2011-04-17
  • 1970-01-01
  • 2021-10-16
相关资源
最近更新 更多