【问题标题】:Date Diff - Parse Today's Date to capture the end of the fiscal year日期差异 - 解析今天的日期以捕获财政年度的结束
【发布时间】:2020-06-18 16:27:07
【问题描述】:

试图想出一种方法来使用今天的日期来返回一个我可以在 DateDiff 函数中使用的值。

DateDiff(月、Sales_Date、我们的财政年度结束时使用今天的日期

我们的财政年度从 4 月 1 日开始到 3/31 结束

3/31 或之前的任何日期(来自 getdate())我将使用 '3/31/' + getdate 年份的值。

4 月 1 日或之后的任何日期(来自 getdate())我将使用 '3/31/' + getdate 年份的值 + 1。

最终结果会给我从原始销售日期到当前财政年度结束的月数

示例 今天的日期是 6/18/20,所以上面 DateDif 公式中的最后一个参数是 3/31/2021

我将使用下面代码中的列:

Select g.sales_month,g.fiscal_year as FY, g.Sales_Type,v.region, sum(g.FY_Total) as FY_Total
from sales_FY g JOIN dbo.dimsummary AS v ON g.sales_id = v.sales_id
group by g.sales_Month, g.fiscal_year, v.Region, g.Sales_Type

例子:

Picture of the end result using Excel format

【问题讨论】:

  • 数据函数的语法因数据库引擎而异。我发现了一些dbo.,所以我认为你的是 SQL Server。
  • 抱歉,我使用的是 SQL Server
  • 请展示一些样本数据和期望的结果,包括边缘情况,比文字问题更容易解决。
  • @AaronBertrand。我使用 Excel 粘贴了最终结果的图片。希望这会有所帮助。谢谢你的建议。

标签: sql sql-server date


【解决方案1】:

减去 3 个月并提取月份。这为您提供了财政年度中本月的月份。然后从 11 或 12 中减去这个值(我不确定哪个更适合“剩余月数”):

select 11 - month(dateadd(month, -3, getdate())

【讨论】:

  • 您好,我测试了您的代码,结果不是我预期的结果。看起来它返回的是今天日期和当前财政年度结束之间的月数。但是,它并没有给我原始销售日期和本财政年度结束之间的差异,这是我使用 DATEDIFF 功能后的结果。对不起,如果我在我的 OP 中解释得不好。谢谢
  • getdate()换成你想要的日期。
  • 感谢您的帖子
猜你喜欢
  • 1970-01-01
  • 2021-01-06
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2015-03-07
  • 1970-01-01
  • 2019-12-02
  • 2020-10-06
相关资源
最近更新 更多