From 5c573b66018a300d9f0e98d5e58af55a1066afe5 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Wed, 22 Dec 2021 13:13:51 +0800 Subject: [PATCH] Update sqlserver date to string --- Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs | 2 ++ .../ResolveItems/MethodCallExpressionResolve.cs | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index 3a3613d81..a33598589 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -172,6 +172,8 @@ namespace OrmTest var test19 = db.Queryable().Select().ToList(); var test20 = db.Queryable().LeftJoin((o, cs) =>o.Id==cs.Id) .ToDictionary(it => it.Id, it => it.Name); + + var test21 = db.Queryable().Where(it=>it.Id.ToString()==1.ToString()).Select(it => it.CreateTime.ToString("24")).First(); Console.WriteLine("#### Examples End ####"); } diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs index a079dfddf..5a19924f4 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/ResolveItems/MethodCallExpressionResolve.cs @@ -726,11 +726,11 @@ namespace SqlSugar case "ToTime": return this.Context.DbMehtods.ToTime(model); case "ToString": - if (model.Args.Count > 1 && model.Args.Last().MemberValue.ObjToString().ToLower().IsContainsIn("-", "/", ":","m","d","s", "y", "ms", "h","convert")) + if (model.Args.Count > 1) { return GeDateFormat(model.Args.Last().MemberValue.ObjToString(), model.Args.First().MemberName.ObjToString()); } - Check.Exception(model.Args.Count > 1, "ToString (Format) is not supported, Use ToString().If time formatting can be used it.Date.Year+\"-\"+it.Data.Month+\"-\"+it.Date.Day "); + //Check.Exception(model.Args.Count > 1, "ToString (Format) is not supported, Use ToString().If time formatting can be used it.Date.Year+\"-\"+it.Data.Month+\"-\"+it.Date.Day "); return this.Context.DbMehtods.ToString(model); case "ToVarchar": return this.Context.DbMehtods.ToVarchar(model); @@ -914,6 +914,10 @@ namespace SqlSugar { return $"CONVERT(varchar(100),convert(datetime,{value}), 121)"; } + else if (formatString!=null&& formatString.IsInt()) + { + return string.Format("CONVERT(varchar(100),convert(datetime,{0}), {1})", value, formatString); + } var parameter = new MethodCallExpressionArgs() { IsMember = true, MemberValue = DateType.Year }; var parameter2 = new MethodCallExpressionArgs() { IsMember = true, MemberName = value }; var parameters = new MethodCallExpressionModel() { Args = new List() { parameter2, parameter } };