protected override void WriteFunctionCall(SqlCallExpression callExpr, StringBuilder writer) { if (callExpr.Method.Name == nameof(Function.Hour)) { writer.Append("DATEPART(HOUR, "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(")"); } else if (callExpr.Method.Name == nameof(Function.Minute)) { writer.Append("DATEPART(MINUTE, "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(")"); } else if (callExpr.Method.Name == nameof(Function.Second)) { writer.Append("DATEPART(SECOND, "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(")"); } else { base.WriteFunctionCall(callExpr, writer); } }
protected override void WriteFunctionCall(SqlCallExpression callExpr, StringBuilder writer) { if (callExpr.Method.Name == nameof(Function.Year)) { writer.Append("CAST(EXTRACT(YEAR FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else if (callExpr.Method.Name == nameof(Function.Month)) { writer.Append("CAST(EXTRACT(MONTH FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else if (callExpr.Method.Name == nameof(Function.Day)) { writer.Append("CAST(EXTRACT(DAY FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else if (callExpr.Method.Name == nameof(Function.Hour)) { writer.Append("CAST(EXTRACT(HOUR FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else if (callExpr.Method.Name == nameof(Function.Minute)) { writer.Append("CAST(EXTRACT(MINUTE FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else if (callExpr.Method.Name == nameof(Function.Second)) { writer.Append("CAST(EXTRACT(SECOND FROM "); var dateExpr = callExpr.Arguments[0]; WriteExpression(dateExpr, writer); writer.Append(") AS INT)"); } else { base.WriteFunctionCall(callExpr, writer); } }