获取指定日期的常用前后节点(月初月末周一周末等等)
生活随笔
收集整理的這篇文章主要介紹了
获取指定日期的常用前后节点(月初月末周一周末等等)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
獲取指定日期的常用前后節(jié)點(diǎn)(月初月末周一周末等等) 原文:獲取指定日期的常用前后節(jié)點(diǎn)(月初月末周一周末等等)
注:周節(jié)點(diǎn)方面是根據(jù)中國習(xí)慣,視周一為起,周日為末。
/*--------------------------------- 函數(shù):獲取某日期的特定起止節(jié)點(diǎn)v0.01 Author:AhDung Update:201305151755 ---------------------------------*/ ALTER FUNCTION dbo.FGetSpecialDate_ahdung(@date DATE, @SpcDate VARCHAR(20)) RETURNS DATE AS BEGIN IF @SpcDate IN ('YearBeg','YB','NC','年初') RETURN DATENAME(YEAR,@date)+'-01-01' ELSE IF @SpcDate IN ('YearEnd','YE','NW','年尾','年末') RETURN DATENAME(YEAR,@date)+'-12-31' ELSE IF @SpcDate IN ('QuarterBeg','QtBeg','QB','JC','季初') RETURN DATENAME(YEAR,@date)+CASE WHEN MONTH(@date)<=3 THEN '-01' WHEN MONTH(@date)<=6 THEN '-04' WHEN MONTH(@date)<=9 THEN '-07' ELSE '-10' END +'-01' ELSE IF @SpcDate IN ('QuarterEnd','QtEnd','QE','JW','季尾','季末') RETURN DATENAME(YEAR,@date)+CASE WHEN MONTH(@date)<=3 THEN '-03-31' WHEN MONTH(@date)<=6 THEN '-06-30' WHEN MONTH(@date)<=9 THEN '-09-30' ELSE '-12-31' END ELSE IF @SpcDate IN ('MonBeg','MB','YC','月初') RETURN CONVERT(CHAR(7),@date,120)+'-01' ELSE IF @SpcDate IN ('MonEnd','ME','YW','月尾','月末') RETURN DATEADD(DAY,-1,CONVERT(CHAR(7),DATEADD(MONTH,1,@date),120)+'-01') ELSE IF @SpcDate IN ('WeekBeg','WB','ZY','周一') RETURN DATEADD(DAY,2-CASE DATEPART(dw,@date) WHEN 1 THEN 8 ELSE DATEPART(dw,@date) END,@date) ELSE IF @SpcDate IN ('WeekEnd','WE','ZR','ZM','周日','周末') RETURN DATEADD(DAY,8-CASE DATEPART(dw,@date) WHEN 1 THEN 8 ELSE DATEPART(dw,@date) END,@date) RETURN @date END?
posted on 2014-11-13 20:29 NET未來之路 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/4095806.html
總結(jié)
以上是生活随笔為你收集整理的获取指定日期的常用前后节点(月初月末周一周末等等)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sybase sp_procxmode
- 下一篇: Android APP开发文档模板