Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/04/2013, 20:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: [Aporte] Hacer query por date en columna tipo datetime (indexada)

Esto es algo que alguna vez alguien consultó, y que tuve que investigar un poco para encontrarlo.
Resultó ser producto de la corrección de un bug, que se menciona en el manual de referencia, que existía en la versión 4.0.x: Al comparar dos campos de fecha de diferente longitud "cortaba" las horas y devolvía un DATE, con todas las malas consecuencias imaginables.

A partir de la versión 5.0.x, MySQL realiza una conversión implícita cuando compara fechas, transformando todas al tipo de dato de más alto nivel (DATETIME), y como no existen horas referidas en un DATE, lo que hace es poner las horas a cero.

Francamente no creo que haya diferencias performánticas notorias, porque en ambos casos se están generando conversiones, unas explícitas y otras implícitas. Si hay alguna, debe manifestarse con consultas de millones de registros.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)