[SPARK-3407][SQL]Add Date type support

I've checked the logic of `java.sql.Date`.`compareTo`, and it is not the same as `DateWritable`.`compareTo`, which is the internal representation in Hive. The former will compare its milliseconds, but the later only compare the `days since Epoch`, probably we need to follow the same semantic with Hive here.
BTW: If we change the logic here, does that also mean we needn't cast the `date` to `string` for `BinaryPredicate` in `HiveTypeCoercion`?