mssql中获取指定日期所在月份的第一天的代码

获取指定日期月份的第一天,你可以使用dateadd函数,减去指定日期的月份过去了的天数,即可。


复制代码 代码如下:

create function [dbo].[udf_firstdayofmonth]

(

@date date

)

returns datetime

as

begin

return cast(dateadd(day,1 – day(@date), @date) as datetime)

end

或者,用datediff计算指定日期与日期开始之时,相隔几个月,然后再dateadd加上这个相隔月份数,从零开始。


复制代码 代码如下:

create function [dbo].[udf_firstdayofmonth]

(

@date date

)

returns datetime

as

begin

return dateadd(month,datediff(month,0,@date),0)

end

或者,从指定的日期取出年或月,然后与01组合为日期,即得到指定日期当月天第一天。


复制代码 代码如下:

create function [dbo].[udf_firstdayofmonth]

(

@date date

)

returns datetime

as

begin

declare @y nvarchar(4) = cast(year(@date) as nvarchar(4))

declare @m nvarchar(2) = cast(month(@date) as nvarchar(2))

return cast((@y + n’-‘ + @m + n’-01′) as datetime)

end

或者,参考这篇: 使用convert函数,指定日期格式来转换,这样也可以获取指定日期所在月份的第一天。


复制代码 代码如下:

create function [dbo].[udf_firstdayofmonth]

(

@date date

)

returns datetime

as

begin

declare @ym nvarchar(10) = convert(varchar(8),getdate(),23)

return cast((@ym + n’01’) as datetime)

end

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐