Solución:
La consulta que desea mostrar como ejemplo es:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 son las 4 a.m., por lo que todos los resultados que estás mostrando vienen después eso, que es correcto.
Si desea mostrar todo después de las 4 p.m., debe usar la notación correcta (24 horas) en su consulta.
Para aclarar un poco las cosas, intente esto:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Eso le mostrará la fecha y su hora de 12 horas.
Puede usar el siguiente SQL para comparar la fecha y la hora:
Select * From temp where mydate > STR_TO_DATE('2009-06-29 04:00:44', '%Y-%m-%d %H:%i:%s');
Se adjuntó la salida de mysql cuando usé el mismo SQL en el mismo tipo de tabla y campo que mencionaste en el problema.
Debería funcionar perfecto.
Su consulta aparentemente arrojó todas las fechas correctas, incluso considerando la hora.
Si aún no está satisfecho con los resultados, pruebe DATEDIFF y busque resultados negativos / positivos entre las dos fechas.
Asegúrese de que su mydate
la columna es una datetime
escribe.