Запрос, который вы хотите показать в качестве примера:
SELECT * FROM temp WHERE mydate > '2009-06-29 16:00:44';
04: 00: 00 - 4:00, поэтому все отображаемые вами результаты приходят после , что правильно.
Если вы хотите показать все после 4 вечера, вам нужно использовать правильную (24 часа) запись в вашем запросе.
Чтобы сделать вещи немного понятнее, попробуйте это:
SELECT mydate, DATE_FORMAT(mydate, '%r') FROM temp;
Это покажет вам дату и ее 12-часовое время.