Update Oracle

This commit is contained in:
sunkaixuan
2017-09-24 18:53:04 +08:00
parent 552fa6ff41
commit 858cf7f751
2 changed files with 41 additions and 4 deletions

View File

@@ -420,9 +420,8 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, " (DATEDIFF(:MethodConst2,:MethodConst0,:MethodConst1)=0) ", new List<SugarParameter>() {
new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",x2),
new SugarParameter(":MethodConst2",DateType.Millisecond)
base.Check(value, pars, " ROUND(TO_NUMBER(:MethodConst0 - :MethodConst1) * 86400000) ", new List<SugarParameter>() {
new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",x2)
}, "DateIsSameByType error");
}
private void DateIsSameByDay()
@@ -433,7 +432,7 @@ namespace OrmTest.UnitTest
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, pars, "(DATEDIFF(day,:MethodConst0,:MethodConst1)=0) ", new List<SugarParameter>() {
base.Check(value, pars, " ROUND(TO_NUMBER(:MethodConst0 - :MethodConst1)) ", new List<SugarParameter>() {
new SugarParameter(":MethodConst0",x2),new SugarParameter(":MethodConst1",x2)
}, "DateIsSameDay error");
}

View File

@@ -74,5 +74,43 @@ namespace SqlSugar
var parameter = model.Args[0];
return string.Format(" trim({0}) ", parameter.MemberName);
}
public override string DateIsSameDay(MethodCallExpressionModel model)
{
var parameter = model.Args[0].MemberName;
var parameter2 = model.Args[1].MemberName;
return string.Format(" ROUND(TO_NUMBER({0} - {1})) ", parameter, parameter2);
}
public override string DateIsSameByType(MethodCallExpressionModel model)
{
var parameter = model.Args[0].MemberName;
var parameter2 = model.Args[1].MemberName;
var parameter3 = model.Args[2].MemberValue;
var type = (DateType)Enum.Parse(typeof(DateType), parameter3.ObjToString(), false);
int time = 1;
switch (type)
{
case DateType.Year:
time = time * 1 / 365;
break;
case DateType.Month:
time = time * 1 / 30;
break;
case DateType.Day:
break;
case DateType.Hour:
time = time * 24;
break;
case DateType.Second:
time = time * 24 * 60 * 60;
break;
case DateType.Minute:
time = time * 24 * 60;
break;
case DateType.Millisecond:
time = time * 24 * 60 * 60 * 1000;
break;
}
return string.Format(" ROUND(TO_NUMBER({0} - {1}) * {2}) ", parameter, parameter2, time);
}
}
}