meta_query, number comparison, not quite working as it should

Firstly, there’s no point in converting to ‘meta_query’ if you’re dealing with a single custom field.

Secondly, ‘meta_query’ doesn’t handle ordering.

Finally, since your date is in the ‘Ymd’ format, comparing them as numbers will produce incorrect results. In your initial code, they are compared as strings.