首页 > 解决方案 > 根据 yyyymmdd 检索上一个 fytd 开始日期和结束日期

问题描述

我已经搜索并尝试了各种查询,但一直卡住。非常感谢您的帮助。谁能建议如何根据 yyyymmdd 格式的日期检索前 2 个财务 ytd 的开始?

我有一份每日报告,如果日期是 yyyymmdd,那么我想检索最近 2 个财政年度的开始日期。例如,如果日期是 20180612,那么我想从 20160701 获取日期。

标签: sqlsql-servertsql

解决方案


你的查询应该像

declare @daily varchar(100)= '20180403', @fytd varchar(100), @fytd2 varchar(100);
SELECT 
    @fytd = 
        CONVERT(VARCHAR(10), DATEADD(MONTH, 6,DATEADD(YEAR,DATEDIFF(YEAR, 0, DATEADD(MONTH, -6, @daily)), 0)), 112),
    @fytd2= -- to get previous FYTD just -1 from the result of DATEDIFF(YEAR, 0, DATEADD(MONTH, -6, @daily))
        CONVERT(VARCHAR(10), DATEADD(MONTH, 6,DATEADD(YEAR,DATEDIFF(YEAR, 0, DATEADD(MONTH, -6, @daily))-1, 0)), 112)


select @fytd,  @fytd2

See working demo


推荐阅读