Я создал функцию «ufngetFirstDateOfMonth» и «ufngetLastDateOfMonth», хранящуюся в Microsoft SQL Server 2008. Моя цель - отправить некоторую дату в функцию и она вернет первую дату месяца с «00: 00: 00» или последней датой месяца с «23: 59: 59».Как получить последнюю дату месяца SQL Server 2008
я вызываю функцию, как это:
exec ufngetLastDateOfMonth('2014-10-15')
и обычно она возвращает «2014-10-31 23:59:59»
, но когда я посылаю последнюю дату месяца, что есть 31 дней (август, январь, ...):
exec ufngetLastDateOfMonth('2014-10-31')
это вернуть '2014-10-30 23:59:59' Уик не является правильным вынашивал, оно должно быть «2014-10-31 23:59:59 '
Someth ING идет здесь не так ...
Это моя функция:
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
Как насчет «последнего дня месяца - за один день до 1-го числа следующего месяца»;) – TomTom
'EOMONTH()'?не уверен в sql-сервере 2008 –
EOMONTH() нуждается в SQL Server 2012 –