SELECT ...
WHERE
YEAR < 2011
OR (YEAR = 2011 AND MONTH < 6)
OR (YEAR = 2011 AND MONTH = 6 AND DAY < 30)
OR (YEAR = 2011 AND MONTH = 6 AND DAY = 30 AND HOUR <= 1)
Или:
SELECT ...
WHERE STR_TO_DATE(CONCAT(year,'-',month,'-',day,' ',hour,':00:00')) <= '2011-06-30 01:00:00';
Последнее, вероятно, намного медленнее (поскольку оно не может использовать индексы для ваших различных столбцов даты. Оно также не проверено, поскольку является единственной (древней) версиейMySQL, к которому у меня есть доступ, не поддерживает STR_TO_DATE ().