hmm...get_Month_Days function looks funny...why are you not just
putting a datetime as parameter?
The function could be done like this:
CREATE FUNCTION [dbo].[get_Month_Days] ( @szfd_date DATETIME )
RETURNS INT
AS
BEGIN
RETURN CASE WHEN MONTH(@szfd_date) IN (1, 3, 5, 7, 8, 10, 12) THEN
31
WHEN MONTH(@szfd_date) IN (4, 6, 9, 11) THEN 30
ELSE CASE WHEN (YEAR(@szfd_date) % 4 = 0 AND
YEAR(@szfd_date) % 100 != 0) OR
(YEAR(@szfd_date) % 400 = 0)
THEN 29
ELSE 28
END
END
END
or like this:
CREATE FUNCTION [dbo].[get_Month_Days] (@szfd_date DATETIME)
RETURNS INT
AS
BEGIN
SET @szfd_date = CONVERT(VARCHAR(10), @szfd_date, 101)
SET @szfd_date = @szfd_date - DAY(@szfd_date) + 1
RETURN DATEDIFF(DD, @szfd_date, DATEADD(MM, 1, @szfd_date))
END
Make less conversions and think more simple...the solution is more
simple than you can imagine :)
On Jan 27, 12:07 pm, The Master Mind <[email protected]> wrote:
> the return value is varchar..
> i send one handle
> on the handle value i get the retrun value
> if handle is MONTH it sends only month as date diff
> if handle is null or nothing
> it gives the date diff as "YEAR # MONTH # DAY"
> in front end i just split # and i got year , month and days as date diff
>
> --
> Rakesh Hendre,
> Sr. Software Architect
> Brilliance Software Systems.http://www.brilliancesoftwares.com/
> Mob : 9960001862