CREATE FUNCTION [dbo].[date_part](@component varchar(20) ,@fDate datetime)
RETURNS int AS
BEGIN
DECLARE @ans int
SET @ans =
CASE
WHEN @component IN('year' , 'years' , 'yr', 'yrs')
THEN DATEPART(year, @fDate)
WHEN @component IN ('quarter' , 'quarters' , 'qtr', 'qtrs')
THEN DATEPART(quarter, @fDate)
WHEN @component IN ('month' ,'months' , 'mo', 'mos')
THEN DATEPART(month, @fDate)
WHEN @component IN ('week' , 'weeks' , 'wk', 'wks')
THEN DATEPART(week, @fDate)
WHEN @component IN ('day', 'days')
THEN DATEPART(day, @fDate)
WHEN @component IN ('hour' , 'hours', 'hr', 'hrs')
THEN DATEPART(hour, @fDate)
WHEN @component IN ('minute' ,'minutes' , 'min', 'mins')
THEN DATEPART(minute, @fDate)
WHEN @component IN ('second' , 'seconds', 'sec', 'secs')
THEN DATEPART(second, @fDate)
ELSE -1
END
RETURN @ans
END
GO