- 忧化 DateTime.Subtract(date).TotalDays 表达式解析对应 datediff(day, date1, date2);

This commit is contained in:
2881099
2024-12-19 17:00:55 +08:00
parent e0941609c9
commit b5b67f1dcf
20 changed files with 751 additions and 772 deletions

View File

@@ -384,6 +384,19 @@ namespace FreeSql.Odbc.Oracle
}
return null;
}
public override string ExpressionLambdaToSqlCallDateDiff(string memberName, Expression date1, Expression date2, ExpTSC tsc)
{
Func<Expression, string> getExp = exparg => ExpressionLambdaToSql(exparg, tsc);
switch (memberName)
{
case "TotalDays": return $"(({getExp(date1)}+0)-({getExp(date2)}+0))";
case "TotalHours": return $"((({getExp(date1)}+0)-({getExp(date2)}+0))*24)";
case "TotalMilliseconds": return $"((({getExp(date1)}+0)-({getExp(date2)}+0))*{24 * 60 * 60 * 1000})";
case "TotalMinutes": return $"((({getExp(date1)}+0)-({getExp(date2)}+0))*{24 * 60})";
case "TotalSeconds": return $"((({getExp(date1)}+0)-({getExp(date2)}+0))*{24 * 60 * 60})";
}
return null;
}
public override string ExpressionLambdaToSqlCallDateTime(MethodCallExpression exp, ExpTSC tsc)
{
Func<Expression, string> getExp = exparg => ExpressionLambdaToSql(exparg, tsc);