星空网 > 软件开发 > 数据库

SQL中获取最近的N个半年度

直接上代码:

--获取往前推的N个半年度CREATE FUNCTION F3_GetRecentNHalfYear(  @N INT)RETURNS @Result TABLE (  Year SMALLINT,  HalfYear TINYINT,  DateName VARCHAR(200))AS BEGIN   IF @N <1   BEGIN     RETURN  END   DECLARE @Now DATETIME,      @StartHalfYear TINYINT,    --从上半年还是下半年开始      @I INT   SET @Now = GETDATE()  SET @I = 1   IF(MONTH(@Now)<=6)     SET @StartHalfYear = 1   ELSE    SET @StartHalfYear = 2   WHILE @I <= @N  BEGIN         --如果当前是上半年,那么就是从1开始的,最近的N个年度是这样的: 2015 2014 2014 2013 2013 2012       --而它们与当前日期@Now呈现这样的数列:             -0, -1, -0,  -1, -0, -1 .....    --如果当前是下半年,那么就是从2开始的,最近的N个年度是这样的: 2015 2015 2014 2014 2013 2013 2012       --而它们与当前日期@Now呈现这样的数列:             -0, -0, -1,  -0, -1, -0,.....    IF @StartHalfYear = 2    BEGIN      IF @I >2 AND @I % 2 != 0       BEGIN         SET @Now = DATEADD(yyyy,-1,@Now)      END     END    ELSE     BEGIN       IF @I % 2 = 0       BEGIN         SET @Now = DATEADD(yyyy,-1,@Now)      END     END         --如果当前是上半年,那么就是从1开始的,最近的N个半年度呈现这样的数列: 1 2 1 2 1 2 1 2     --如果当前是下半年,那么就是从2开始的,最近的N个半年度呈现这样的数列: 2 1 2 1 2 1 2 1     --那么通项公式分别是:(3+POWER(-1,@I))/2 和 (3+POWER(-1,@I+1))/2     INSERT INTO @Result    (Year,HalfYear)    SELECT       YEAR(@Now),(3+POWER(-1,@I+(@StartHalfYear-1)))/2     SET @I = @I + 1   END   UPDATE @Result   SET DateName = CAST(Year AS VARCHAR(4))+'年' + (    CASE WHEN HalfYear=1 THEN '上半年' ELSE '下半年' END   )RETURN END 

 




原标题:SQL中获取最近的N个半年度

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

一手好牌的Shopee虾皮,为何落到大裁员的下场?:https://www.goluckyvip.com/news/8142.html
海外版抖音TikTok特赚钱的16个热门类目!普通人也可以做!:https://www.goluckyvip.com/news/8143.html
TikTok Spark Ads投放指南:https://www.goluckyvip.com/news/8144.html
一周卖2万支口红,Shopee大卖:定价比选品重要!:https://www.goluckyvip.com/news/8145.html
tiktok涨粉有哪些技巧,账号如何保持热度?:https://www.goluckyvip.com/news/8146.html
延至10月16日!亚马逊物流创建货件操作流程将全面更新!:https://www.goluckyvip.com/news/8147.html
云南旅游攻略(8-10天左右):https://www.vstour.cn/a/404249.html
有威海直到崂山风景区车吗 威海到青岛崂山怎么走最快:https://www.vstour.cn/a/404250.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流