Заявката, която искате да покажете като пример, е:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04:00:00 е 4 сутринта, така че всички резултати, които показвате, идват след това, което е правилно.
Ако искате да покажете всичко след 16:00, трябва да използвате правилната (24 часа) нотация в заявката си.
За да направите нещата малко по-ясни, опитайте това:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Това ще ви покаже датата и нейния 12-часов час.