You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix RemoteAttacher date filtering to preserve time component
Remove CAST to Date which was stripping time component and causing
timezone-sensitive test failures in RemoteDatabaseAttacherTests.
Issue:
- SqlHistoricalDataFilter was using CAST(column as Date)
- This strips hours/minutes/seconds from datetime values
- When test runs near midnight, causes off-by-one day errors
- Test expects 3 rows but gets 2 due to date boundary issues
Example failure:
- withinDate = "2025-10-28 23:00:00" (1 hour ago, Oct 28)
- CAST to Date = "2025-10-28" (time stripped)
- DATEADD(DAY, -1, GETDATE()) = "2025-10-28" at midnight
- Comparison: "2025-10-28" > "2025-10-28" = FALSE (row excluded)
Fix:
- Remove all CAST(column as Date) operations
- Use datetime column directly for time-sensitive comparisons
- Preserves full precision for accurate date filtering
Affected cases:
- Past24Hours, Past7Days, PastMonth, PastYear
- SinceLastUse, Custom, DeltaReading
This fixes CI failures in PR #39 and other dependabot PRs running
RemoteDatabaseAttacherTests at various times of day.
Tests affected:
- TestRemoteDatabaseAttacherWithDateFilter(*, *, Past24Hours)
// Don't cast to Date - preserve time component for accurate filtering
108
+
// Casting to Date causes timezone-sensitive failures when time crosses midnight
108
109
109
110
switch(HistoricalFetchDuration)
110
111
{
111
112
caseAttacherHistoricalDurations.Past24Hours:
112
-
return$" WHERE CAST({column} as {dateConvert}) > {GetCorrectDateAddForDatabaseType(dbType,"DAY","-1")}";
113
+
return$" WHERE {column} > {GetCorrectDateAddForDatabaseType(dbType,"DAY","-1")}";
113
114
caseAttacherHistoricalDurations.Past7Days:
114
-
return$" WHERE CAST({column} as {dateConvert}) > {GetCorrectDateAddForDatabaseType(dbType,"WEEK","-1")}";
115
+
return$" WHERE {column} > {GetCorrectDateAddForDatabaseType(dbType,"WEEK","-1")}";
115
116
caseAttacherHistoricalDurations.PastMonth:
116
-
return$" WHERE CAST({column} as {dateConvert}) > {GetCorrectDateAddForDatabaseType(dbType,"MONTH","-1")}";
117
+
return$" WHERE {column} > {GetCorrectDateAddForDatabaseType(dbType,"MONTH","-1")}";
117
118
caseAttacherHistoricalDurations.PastYear:
118
-
return$" WHERE CAST({column} as {dateConvert}) > {GetCorrectDateAddForDatabaseType(dbType,"YEAR","-1")}";
119
+
return$" WHERE {column} > {GetCorrectDateAddForDatabaseType(dbType,"YEAR","-1")}";
119
120
caseAttacherHistoricalDurations.SinceLastUse:
120
-
returnloadMetadata.LastLoadTimeis not null?$" WHERE CAST({column} as {dateConvert}) > {ConvertDateString(dbType,loadMetadata.LastLoadTime.GetValueOrDefault().ToString(RemoteTableDateFormat))}":"";
121
+
returnloadMetadata.LastLoadTimeis not null?$" WHERE {column} > {ConvertDateString(dbType,loadMetadata.LastLoadTime.GetValueOrDefault().ToString(RemoteTableDateFormat))}":"";
@@ -137,12 +138,12 @@ public string SqlHistoricalDataFilter(ILoadMetadata loadMetadata, DatabaseType d
137
138
return"";
138
139
}
139
140
140
-
return$" WHERE CAST({column}as {dateConvert}) >= {ConvertDateString(dbType,CustomFetchDurationStartDate.ToString(RemoteTableDateFormat))} AND CAST({column} as {dateConvert}) <= {ConvertDateString(dbType,CustomFetchDurationEndDate.ToString(RemoteTableDateFormat))}";
141
+
return$" WHERE {column} >= {ConvertDateString(dbType,CustomFetchDurationStartDate.ToString(RemoteTableDateFormat))} AND {column} <= {ConvertDateString(dbType,CustomFetchDurationEndDate.ToString(RemoteTableDateFormat))}";
return$" WHERE CAST({column}as {dateConvert}) >= {ConvertDateString(dbType,startDate.ToString(RemoteTableDateFormat))} AND CAST({column} as {dateConvert}) < {ConvertDateString(dbType,endDate.ToString(RemoteTableDateFormat))}";
146
+
return$" WHERE {column} >= {ConvertDateString(dbType,startDate.ToString(RemoteTableDateFormat))} AND {column} < {ConvertDateString(dbType,endDate.ToString(RemoteTableDateFormat))}";
0 commit comments