Don't use `BETWEEN` for checking a date or datetime range; it is _inclusive_, so you get the second (usually midnight) at both ends. For checking DATE or DATETIME against one "day", do this: WHERE col >= '2019-12-19' AND col < '2019-12-19' + INTERVAL 1 DAY That will work 'correctly' whether `col` is a DATE, DATETIME, or DATETIME(6). And the Optimizer is generally happy with that expression.