Nie sądzę, aby przyjęta odpowiedź była dobrym uniwersalnym rozwiązaniem!
Dzieje się tak, ponieważ funkcja UNIX_TIMESTAMP() kończy się niepowodzeniem dla dat przed 1970-01-01 (oraz dla dat w odległej przyszłości przy użyciu 32-bitowych liczb całkowitych). Może się to łatwo zdarzyć w dniu narodzin wielu żyjących ludzi.
Lepszym rozwiązaniem jest:
SELECT TIMESTAMPDIFF(SECOND, '2010-11-29 13:13:55', '2010-11-29 13:16:55')
Które można zmodyfikować, aby zwracały DZIEŃ ROK MIESIĄC GODZINA i MINUTA!