diff --git a/pkg/query_builder/mysql/filter.go b/pkg/query_builder/mysql/filter.go index a6457a9a..4e2ff088 100644 --- a/pkg/query_builder/mysql/filter.go +++ b/pkg/query_builder/mysql/filter.go @@ -1,11 +1,25 @@ package mysqlquerybuilder -import "fmt" +import ( + "fmt" + "regexp" +) + +var datePattern = regexp.MustCompile(`^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}Z)?$`) + +func isValidDateOrDateTime(value string) bool { + return datePattern.MatchString(value) +} func BuildFilterQuery(filter map[string]interface{}) (filterQuery string, args []any) { for key, value := range filter { - filterQuery += fmt.Sprintf("AND %s = ? ", key) - args = append(args, value) + if strVal, ok := value.(string); ok && isValidDateOrDateTime(strVal) { + filterQuery += fmt.Sprintf("AND DATE(%s) = ? ", key) + args = append(args, strVal) + } else { + filterQuery += fmt.Sprintf("AND %s = ? ", key) + args = append(args, value) + } } return filterQuery, args