34,590
社区成员
发帖
与我相关
我的任务
分享
select dateadd(day,-1,dateadd(month,1,'2008-06'+'-01'))
/*
2008-06-30 00:00:00.000
*/
-- 建函数
create function dbo.fn_getmonthlastday
(@y int, --> 指定年份
@m int --> 指定月份
) returns varchar(20)
as
begin
declare @x varchar(20)
select @x=convert(varchar,
dateadd(d,-1,dateadd(m,1,rtrim(@y)+'-'+rtrim(@m)+'-01')),
111)
return @x
end
-- 测试1
select dbo.fn_getmonthlastday(2014,3) '月份最后一天'
/*
月份最后一天
--------------------
2014/03/31
(1 row(s) affected)
*/
-- 测试2
select dbo.fn_getmonthlastday(2014,2) '月份最后一天'
/*
月份最后一天
--------------------
2014/02/28
(1 row(s) affected)
*/
-- 测试3
select dbo.fn_getmonthlastday(2013,12) '月份最后一天'
/*
月份最后一天
--------------------
2013/12/31
(1 row(s) affected)
*/
DECLARE @a DATETIME
SET @a='2014-03-15'
SELECT DATEADD(month, DATEDIFF(month, '19991231', @a), '19991231');