By default meta values will be treated as strings, leading to the result that you get. As you can see from the codex on wp_query
you can force a comparison with different formats by defining a meta_type
. Like this:
$query->set('meta_type','DATETIME');