Un par de notas:
1) No es necesario complicar las funciones para obtener la fecha de hoy. MySQL tiene funciones específicas para eso.
En lugar de:
deberías usar
2) Si bien es conveniente un campo de tipo DATETIME, porque es mucho más abarcativo, para cumplir con lo que quieres alcanza con un campo DATE y otro TIME. Poner un TIME y un DATETIME al mismo tiempo no parece una buena idea, porque replicas datos entre dos campos (la parte de horas). Y siempre se debe evitar ese tipo de redundancias.
Nota: Cuando dices
DATE() es la
función de fecha y no el tipo de columna DATE (sin paréntesis). Tenlo en cuenta para las descripciones, de modo que no se confundan las ideas.