From 408167311462ae5bbba38f6e8d4490680ce509a0 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 12 Mar 2022 20:28:02 +0800 Subject: [PATCH] Optimized SqlServer Date format --- Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs | 1 + .../SqlBuilder/SqlServerExpressionContext.cs | 13 +++---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index 4c5b56c63..6192b1198 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -179,6 +179,7 @@ namespace OrmTest var test24 = db.Queryable().Where(it => true).Select(it => new { x1 = it.CreateTime.ToString("yyyy-MM-dd _ HH _ mm _ ss "), it.CreateTime }).ToList(); var test25 = db.Queryable().Where(it => true).Select(it => new { x1 = it.CreateTime.Month,x2=DateTime.Now.Month}).ToList(); var test26 = db.Queryable().Where(it => true).Select(it => new { x1 = it.CreateTime.Day, x2 = DateTime.Now.Day }).ToList(); + var test27 = db.Queryable().Where(it => true).Select(it => new { x1 = it.CreateTime.Year, x2 = DateTime.Now.Year }).ToList(); Console.WriteLine("#### Examples End ####"); } diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs index 0680ea13e..82490bed0 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/SqlBuilder/SqlServerExpressionContext.cs @@ -24,20 +24,13 @@ namespace SqlSugar { var parameter = model.Args[0]; var parameter2 = model.Args[1]; - if ((parameter2.MemberValue + "") == "Month") + if (parameter.MemberName != null && parameter.MemberName is DateTime) { - if (parameter.MemberName != null && parameter.MemberName is DateTime) - { - return string.Format(" Month('{0}') ", parameter.MemberName); - } - else - { - return string.Format(" Month({0}) ", parameter.MemberName); - } + return string.Format(" datepart({0},'{1}') ", parameter2.MemberValue, parameter.MemberName); } else { - return base.DateValue(model); + return string.Format(" datepart({0},{1}) ", parameter2.MemberValue, parameter.MemberName); } } public override string HasValue(MethodCallExpressionModel model)