Update Oracle

This commit is contained in:
sunkaixuan 2017-09-25 00:33:12 +08:00
parent c59454655d
commit 4da0b58a63
2 changed files with 35 additions and 12 deletions

View File

@ -363,9 +363,8 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle); expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString(); var value = expContext.Result.GetString();
var pars = expContext.Parameters; var pars = expContext.Parameters;
base.Check(value, pars, "((DATEADD(:MethodConst2,:MethodConst1,:MethodConst0)) = :Const3 )", new List<SugarParameter>() { base.Check(value, pars, "((\"DATETIME2\"+0.0416666666666667) = :Const2 )", new List<SugarParameter>() {
new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",11),new SugarParameter(":Const3",x2), new SugarParameter(":Const2",x2)
new SugarParameter(":MethodConst2",DateType.Millisecond)
}, "DateAddByType error"); }, "DateAddByType error");
} }
private void DateAddDay() private void DateAddDay()
@ -376,7 +375,7 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle); expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString(); var value = expContext.Result.GetString();
var pars = expContext.Parameters; var pars = expContext.Parameters;
base.Check(value, pars, "((DATEADD(day,:MethodConst1,:MethodConst0)) = :Const2 )", new List<SugarParameter>() { base.Check(value, pars, "((:MethodConst0+1) = :Const2 )", new List<SugarParameter>() {
new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",1),new SugarParameter(":Const2",x2) new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",1),new SugarParameter(":Const2",x2)
}, "DateAddDay error"); }, "DateAddDay error");
@ -392,9 +391,9 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle); expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString(); var value = expContext.Result.GetString();
var pars = expContext.Parameters; var pars = expContext.Parameters;
base.Check(value, pars, "((DATEADD(:Const0,:MethodConst1,\"DATETIME2\")) = :Const2 )", new List<SugarParameter>() { base.Check(value, pars, "((\"DATETIME2\"+0.0416666666666667) = :Const2 )", new List<SugarParameter>() {
new SugarParameter(":Const0",DateType.Hour.ToString()),new SugarParameter(":MethodConst1",10) new SugarParameter(":Const2",x2),
,new SugarParameter(":Const2",x2) new SugarParameter(":MethodConst1",10)
}, "DateAddDay2 error"); }, "DateAddDay2 error");
} }
@ -406,9 +405,8 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle); expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString(); var value = expContext.Result.GetString();
var pars = expContext.Parameters; var pars = expContext.Parameters;
base.Check(value, pars, "((DATEADD(:Const0,:MethodConst2,:MethodConst1)) = :Const3 )", new List<SugarParameter>() { base.Check(value, pars, "((:MethodConst1+0.0416666666666667) = :Const3 )", new List<SugarParameter>() {
new SugarParameter(":Const0",DateType.Hour.ToString()),new SugarParameter(":MethodConst2",1),new SugarParameter(":MethodConst1",x2) new SugarParameter(":MethodConst1",x2),new SugarParameter(":MethodConst2",1),new SugarParameter(":Const3",x2)
,new SugarParameter(":Const3",x2)
}, "DateAddDay3 error"); }, "DateAddDay3 error");
} }

View File

@ -45,14 +45,39 @@ namespace SqlSugar
var parameter = model.Args[0]; var parameter = model.Args[0];
var parameter2 = model.Args[1]; var parameter2 = model.Args[1];
var parameter3 = model.Args[2]; var parameter3 = model.Args[2];
return string.Format(" (DATEADD({2},{1},{0})) ", parameter.MemberName, parameter2.MemberName, parameter3.MemberValue); var type = (DateType)Enum.Parse(typeof(DateType), parameter3.MemberValue.ObjToString(), false);
double time = 1;
switch (type)
{
case DateType.Year:
time = 1 * 365;
break;
case DateType.Month:
time = 1 *30;
break;
case DateType.Day:
break;
case DateType.Hour:
time = 1 / 24.0;
break;
case DateType.Second:
time = 1 / 24.0/60.0/60.0;
break;
case DateType.Minute:
time = 1 / 24.0/60.0;
break;
case DateType.Millisecond:
time = 1 / 24.0 / 60.0 / 60.0/1000;
break;
}
return string.Format("({0}+{1}) ", parameter.MemberName, time);
} }
public override string DateAddDay(MethodCallExpressionModel model) public override string DateAddDay(MethodCallExpressionModel model)
{ {
var parameter = model.Args[0]; var parameter = model.Args[0];
var parameter2 = model.Args[1]; var parameter2 = model.Args[1];
return string.Format(" (DATEADD(day,{1},{0})) ", parameter.MemberName, parameter2.MemberName); return string.Format("({0}+1) ", parameter.MemberName);
} }
public override string ToString(MethodCallExpressionModel model) public override string ToString(MethodCallExpressionModel model)