SQLServer 自定义函数 日期计算月初/月末/年初/年末/季初/季末

SQLServer 2005,SQLServer 2008,SQLServer 2014,SQLServer 2017

均可使用

 

alter function dbo.date_calc
(
    @date date,
    @para varchar(64)  --月初 month_begin,月末 month_end,年初 year_begin,年末 year_end,季初 quarter_begin,季末 quarter_end
) 
returns datetime
as
begin
    set @date= 
        case 
            when @para='month_begin' then convert(varchar(8),@date,120)+'1' --月初
            when @para='month_end' then dateadd(day,-1,convert(varchar(8),dateadd(m,1,@date),120)+'1 00:00:00') --月初 
            when @para='year_begin' then convert(char(4),year(@date))+'0101' --年初
            when @para='year_end' then convert(char(4),year(@date))+'1231' --年底
            when @para='quarter_begin' then dateadd(quarter,1,DATEADD(quarter, DATEDIFF(quarter,0,getdate())-1, 0)) --季初
            when @para='quarter_end' then dateadd(quarter,1,DATEADD(quarter, DATEDIFF(quarter,0,getdate()), -1)) --季末
        end
    return @date
end

[Python,SQL,ETL]交流群 164142295

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值