From 7a5f1cf4b8fa3ae390337ea85a4e3cea326852d3 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Mon, 8 Aug 2022 11:51:51 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20WhereDynamicFilter=20D?= =?UTF-8?q?ateRange=20=E6=83=85=E5=86=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SelectProvider/Select0Provider.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index d034dd58..3fdedbe6 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -1012,7 +1012,7 @@ namespace FreeSql.Internal.CommonProvider else if (Regex.IsMatch(fiValueDateRangeArray[1], @"^\d\d\d\d$")) fiValueDateRangeArray[1] = DateTime.Parse($"{fiValueDateRangeArray[1]}-01-01").AddYears(1).ToString("yyyy-MM-dd HH:mm:ss"); else if (Regex.IsMatch(fiValueDateRangeArray[1], @"^\d\d\d\d[\-/]\d\d?[\-/]\d\d? \d\d?$")) fiValueDateRangeArray[1] = DateTime.Parse($"{fiValueDateRangeArray[1]}:00:00").AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"); else if (Regex.IsMatch(fiValueDateRangeArray[1], @"^\d\d\d\d[\-/]\d\d?[\-/]\d\d? \d\d?:\d\d?$")) fiValueDateRangeArray[1] = DateTime.Parse($"{fiValueDateRangeArray[1]}:00").AddMinutes(1).ToString("yyyy-MM-dd HH:mm:ss"); - else throw new ArgumentException(CoreStrings.DateRange_DateFormat_yyyy); + else if (!Regex.IsMatch(fiValueDateRangeArray[1], @"^\d\d\d\d[\-/]\d\d?[\-/]\d\d? \d\d?:\d\d?:\d\d?$")) throw new ArgumentException(CoreStrings.DateRange_DateFormat_yyyy); if (Regex.IsMatch(fiValueDateRangeArray[0], @"^\d\d\d\d[\-/]\d\d?$")) fiValueDateRangeArray[0] = DateTime.Parse($"{fiValueDateRangeArray[0]}-01").ToString("yyyy-MM-dd HH:mm:ss"); else if (Regex.IsMatch(fiValueDateRangeArray[0], @"^\d\d\d\d$")) fiValueDateRangeArray[0] = DateTime.Parse($"{fiValueDateRangeArray[0]}-01-01").ToString("yyyy-MM-dd HH:mm:ss"); @@ -1040,7 +1040,12 @@ namespace FreeSql.Internal.CommonProvider { var fiValueList = new List(); foreach (var fiValueIeItem in fiValueIe) - fiValueList.Add(string.Concat(fiValueIeItem)); + { + if (fiValueIeItem is DateTime fiValueIeItemDateTime) + fiValueList.Add(fiValueIeItemDateTime.ToString("yyyy-MM-dd HH:mm:ss")); + else + fiValueList.Add(string.Concat(fiValueIeItem)); + } return fiValueList.ToArray(); } var fiValueType = fi.Value.GetType(); @@ -1052,7 +1057,12 @@ namespace FreeSql.Internal.CommonProvider fiValueIe = fiValueType.GetMethod("EnumerateArray", new Type[0])?.Invoke(fi.Value, null) as IEnumerable; var fiValueList = new List(); foreach (var fiValueIeItem in fiValueIe) - fiValueList.Add(string.Concat(fiValueIeItem)); + { + if (fiValueIeItem is DateTime fiValueIeItemDateTime) + fiValueList.Add(fiValueIeItemDateTime.ToString("yyyy-MM-dd HH:mm:ss")); + else + fiValueList.Add(string.Concat(fiValueIeItem)); + } return fiValueList.ToArray(); } return fi.Value.ToString().Split(',');