private static string GetDateTimeFunctionBody(DbDateTimeFunctionExpressionType dateTimeFunctionExpressionType)
{
switch(dateTimeFunctionExpressionType)
{
case DbDateTimeFunctionExpressionType.AddYears:
return "DATEADD(year,{0})";
case DbDateTimeFunctionExpressionType.AddMonths:
return "DATEADD(month,{0})";
case DbDateTimeFunctionExpressionType.AddDays:
return "DATEADD(day,{0})";
case DbDateTimeFunctionExpressionType.AddHours:
return "DATEADD(hour,{0})";
case DbDateTimeFunctionExpressionType.AddMinutes:
return "DATEADD(minute,{0})";
case DbDateTimeFunctionExpressionType.AddSeconds:
return "DATEADD(second,{0})";
case DbDateTimeFunctionExpressionType.AddMilliseconds:
return "DATEADD(millisecond,{0})";
case DbDateTimeFunctionExpressionType.Date:
return "CONVERT(DATETIME,CONVERT(VARCHAR,{0},102))";
case DbDateTimeFunctionExpressionType.DayOfMonth:
return "DATEPART(day,{0})";
case DbDateTimeFunctionExpressionType.DayOfWeek:
return "DATEPART(weekday,{0})";
case DbDateTimeFunctionExpressionType.DayOfYear:
return "DATEPART(dayofyear,{0})";
case DbDateTimeFunctionExpressionType.Year:
return "DATEPART(year,{0})";
case DbDateTimeFunctionExpressionType.Month:
return "DATEPART(month,{0})";
case DbDateTimeFunctionExpressionType.Hour:
return "DATEPART(hour,{0})";
case DbDateTimeFunctionExpressionType.Minute:
return "DATEPART(minute,{0})";
case DbDateTimeFunctionExpressionType.Second:
return "DATEPART(second,{0})";
case DbDateTimeFunctionExpressionType.MilliSecond:
return "DATEPART(millisecond,{0})";
case DbDateTimeFunctionExpressionType.Now:
return "GETDATE()";
case DbDateTimeFunctionExpressionType.ToDay:
return "CONVERT(DATETIME,CONVERT(VARCHAR,GETDATE(),102))";
default:
throw new ArgumentOutOfRangeException("dateTimeFunctionExpressionType",
string.Format(
"The DateTimeFunctionExpressionType '{0}' is not supported",
dateTimeFunctionExpressionType));
}
}