小编Pha*_*rat的帖子

如何获取SQL Server 2008的最后一个月份

我创建了一个存储在Microsoft SQL Server 2008中的函数"ufngetFirstDateOfMonth"和"ufngetLastDateOfMonth".我的目的是向函数发送一些日期,它将返回"00:00:00"或者最后一个日期的月份的第一个日期. '23:59:59'的一个月.

我把这个函数称为:

exec ufngetLastDateOfMonth('2014-10-15')  
Run Code Online (Sandbox Code Playgroud)

通常它会返回'2014-10-31 23:59:59'
但是当我发送有31天(8月,1月,...)的月份的最后日期时:

exec ufngetLastDateOfMonth('2014-10-31')
Run Code Online (Sandbox Code Playgroud)

它返回'2014-10-30 23:59:59'whick不正确实际上,应该是'2014-10-31 23:59:59'

这里出了点问题......

这是我的功能:

CREATE FUNCTION [dbo].[ufnLastDateOfMonth](@Date date)
RETURNS varchar(50)

AS
BEGIN

DECLARE @New_Date varchar(50)

select @New_date = cast(dateadd(dd,-(DAY(@Date )),DATEADD(mm,1,@Date ))as varchar(50)) + ' 23:59:59'

RETURN @New_Date

END
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2008 ×1