diff --git a/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs b/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs index 5977e339..ab2afbf4 100644 --- a/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs +++ b/server/AyaNova/DataList/DataListSqlFilterCriteriaBuilder.cs @@ -814,7 +814,9 @@ namespace AyaNova.DataList //and exactly the end of range in question as END timestamp string sDateValueWithMaxMilliseconds = PostgresDateFormat(MaxMilliseconds(dtData)); string sDateValueWithZeroMilliseconds = PostgresDateFormat(ZeroMilliseconds(dtData)); + string sDateValueWithZeroSeconds = PostgresDateFormat(ZeroSeconds(dtData)); + string sDateValueWithMaxSeconds = PostgresDateFormat(MaxSeconds(dtData)); switch (sOperator) { @@ -825,7 +827,7 @@ namespace AyaNova.DataList sb.Append(SqlColumnNameToFilter); sb.Append(" "); sb.Append("<='"); - sb.Append(sDateValueWithMaxMilliseconds); + sb.Append(sDateValueWithMaxSeconds); sb.Append("'"); break; @@ -1003,7 +1005,7 @@ namespace AyaNova.DataList private static DateTime ZeroSeconds(DateTime d) { - if (d.Millisecond == 0) return d; + return new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, 0, DateTimeKind.Utc); } @@ -1012,6 +1014,12 @@ namespace AyaNova.DataList if (d.Millisecond == 0) return d; return new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second, DateTimeKind.Utc); } + + private static DateTime MaxSeconds(DateTime d) + { + + return new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, 59, 999, DateTimeKind.Utc); + } private static DateTime MaxMilliseconds(DateTime d) { if (d.Millisecond == 999) return d;