troubleshooting Question

Call UDF from C# with DateTime parameter

Avatar of doramail05
doramail05Flag for Malaysia asked on
C#Microsoft SQL Server 2005Microsoft SQL Server 2008
5 Comments1 Solution656 ViewsLast Modified:
having udf which will getting DateTime Parameter and return an int,

it has error : Incorrect syntax near '16'.


public static int GetNoOfMonth(DateTime dtDateofthemonth)
    {
        string strConnString = connstring.getIDashString();

        SqlConnection con = new SqlConnection(strConnString);
        con.Open();
        SqlCommand com = new SqlCommand("Execute dbo.udf_GetNumDaysInMonth(" + dtDateofthemonth.ToShortDateString() + ")", con);
        
        return (int)com.ExecuteScalar();
        con.Close();


    }

CREATE FUNCTION [dbo].[udf_GetNumDaysInMonth] ( @myDateTime DATETIME )
RETURNS INT
AS
BEGIN
DECLARE @rtDate INT
SET @rtDate = CASE WHEN MONTH(@myDateTime)
IN (1, 3, 5, 7, 8, 10, 12) THEN 31
WHEN MONTH(@myDateTime) IN (4, 6, 9, 11) THEN 30
ELSE CASE WHEN (YEAR(@myDateTime) % 4 = 0
AND
YEAR(@myDateTime) % 100 != 0)
OR
(YEAR(@myDateTime) % 400 = 0)
THEN 29
ELSE 28 END
END
RETURN @rtDate
END
GO

Open in new window

ASKER CERTIFIED SOLUTION
Dale Burrell
Director

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 5 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 5 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros