@@ -101,12 +101,12 @@ private static object ChangeType(DataTablesPropertyInfo propertyInfo, string que
101101 public static string DateTimeOffsetFilter ( string query , string columnname , DataTablesPropertyInfo propertyInfo , List < object > parametersForLinqQuery )
102102 {
103103 if ( query == "~" ) return string . Empty ;
104+ var filterString = null as string ;
105+
104106 if ( query . Contains ( "~" ) )
105107 {
106108 var parts = query . Split ( '~' ) ;
107109
108- var filterString = null as string ;
109-
110110 DateTimeOffset start , end ;
111111 if ( DateTimeOffset . TryParse ( parts [ 0 ] ?? "" , out start ) )
112112 {
@@ -124,18 +124,35 @@ public static string DateTimeOffsetFilter(string query, string columnname, DataT
124124 }
125125 else
126126 {
127- return string . Format ( "{1}.ToLocalTime().ToString(\" g\" ).{0}" , FilterMethod ( query , parametersForLinqQuery , propertyInfo . Type ) , columnname ) ;
127+ DateTimeOffset dateTime ;
128+ if ( DateTimeOffset . TryParse ( query , out dateTime ) )
129+ {
130+ if ( dateTime . Date == dateTime )
131+ {
132+
133+ filterString = string . Format ( "{1}.Date == @" + parametersForLinqQuery . Count , columnname ) ;
134+ parametersForLinqQuery . Add ( dateTime ) ;
135+
136+ }
137+ else
138+ {
139+ filterString = string . Format ( "{1} == @" + parametersForLinqQuery . Count , columnname ) ;
140+ parametersForLinqQuery . Add ( dateTime ) ;
141+ }
142+ }
143+ return filterString ;
128144 }
129145 }
130146
131147 public static string DateTimeFilter ( string query , string columnname , DataTablesPropertyInfo propertyInfo , List < object > parametersForLinqQuery )
132148 {
133149 if ( query == "~" ) return string . Empty ;
150+ var filterString = null as string ;
151+
134152 if ( query . Contains ( "~" ) )
135153 {
136154 var parts = query . Split ( '~' ) ;
137155
138- var filterString = null as string ;
139156
140157 DateTime start , end ;
141158 if ( DateTime . TryParse ( parts [ 0 ] ?? "" , out start ) )
@@ -154,7 +171,23 @@ public static string DateTimeFilter(string query, string columnname, DataTablesP
154171 }
155172 else
156173 {
157- return string . Format ( "{1}.ToLocalTime().ToString(\" g\" ).{0}" , FilterMethod ( query , parametersForLinqQuery , propertyInfo . Type ) , columnname ) ;
174+ DateTimeOffset dateTime ;
175+ if ( DateTimeOffset . TryParse ( query , out dateTime ) )
176+ {
177+ if ( dateTime . Date == dateTime )
178+ {
179+
180+ filterString = string . Format ( "{1}.Date == @" + parametersForLinqQuery . Count , columnname ) ;
181+ parametersForLinqQuery . Add ( dateTime ) ;
182+
183+ }
184+ else
185+ {
186+ filterString = string . Format ( "{1} == @" + parametersForLinqQuery . Count , columnname ) ;
187+ parametersForLinqQuery . Add ( dateTime ) ;
188+ }
189+ }
190+ return filterString ;
158191 }
159192 }
160193
0 commit comments