I want to create a function similar to DATEDIFF in MS SQL Server 2008 R2. The first parameter in DATEDIFF is a datepart. Can I use datepart as a parameter in my function? If not, how do I create a parameter similar to datepart? I don't want to make the parameter text.
For example, I would like to have a function like this: MYFUNC(datepart, timestart, timeend)
So when I call the function, it would look like this: MYFUNC(Hour, N'08:00:00', N'12:00:00')
I'm currently using a nvarchar for the datepart param so my function looks like this: MYFUNC(N'Hour', N'08:00:00', N'12:00:00')
Best Answer
You can't do what Microsoft does with built-ins, sorry. You will need to write your function to accept a string, for example, and evaluate it inline, e.g.
Not that you can't use a conditional inside
DATEDIFF
- a lot of people think you could say:Or
But neither of these will work - both yield: