Gdyby wyniki były zapisywane w jednakowych odstępach czasu (na przykładowych danych widać, że nie są), to nie byłoby problemu:
SELECT `w`.`czas`, `w`.`data`, `w`.`objetosc`, `w`.`przeplyw` FROM `woda` `w` WHERE `w`.`data` = '2013-01-30' AND TIME_TO_SEC(`w`.`czas`) % 1800 = 0 ORDER BY `w`.`czas` ASC
Na chwilę obecną powinieneś mieć 21.
Jeżeli dane nie są zapisywane w jednakowych odstępach czasu, to rozwiązanie problemu może okazać się wręcz niemożliwe, albo niewydajne, przynajmniej po stronie bazy danych.
Alternatywnie możesz spróbować
pobrać np. co 5 rekord.