[Data Grid] Fix filter datetime with seconds #20557
Open
+75
−11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #19974
Root Cause
The
buildApplyFilterFnfunction inpackages/x-data-grid/src/colDef/gridDateOperators.tstruncates seconds from both the filter value and row value before comparison fordateTimecolumns.For equality operators (
is,not), this is correct - comparing7:30:00to7:30:30should match since users can't input seconds in the filter UI.But for comparison operators (
after,before,onOrAfter,onOrBefore), truncating the row value causes incorrect filtering:02:09:00(seconds truncated - correct)02:09:56→ truncated to02:09:00(wrong!)02:09:00 > 02:09:00=false→ row incorrectly excludedSolution
Pass
keepRawComparison=true(renamed fromkeepHoursfor clarity) for comparison operators to skip row value normalization.Updated comparison operators to pass
keepRawComparison: