Czemu finish_date nie jest typu DATETIME? Dzięki temu MySQL nieba by Ci przychylił jeśli chodzi o operacje na datach ;) A znacznik czasu byś se wkładał przy pomocy funkcji FROM_UNIXTIME → https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_from-unixtime
W PHP da się to z kolei ładnie obsługiwać przy pomocy klasy DateTime (po prostu konstruktorowi przekazujesz datę z bazy i tworzy odpowiedni obiekt).
Co do automatycznych aktualizacji: jest mechanizm wbudowany bezpośrednio w MySQL: http://www.sitepoint.com/how-to-create-mysql-events/ więc można zwolnić skrypt PHP od robienia tego typu uaktualnień i przerzucić to w całości na bazę danych.
I na koniec taka mała uwaga polonisty: "liczba godzin". "Ilość" odnosi się do rzeczowników niepoliczalnych ;)