Я одна из тех баз данных, которые должны выполнять операции с данными, поэтому, если вы не используете агрегатную функцию, большинство вещей, подобных этой, должны выполняться на стороне приложения. Теперь для простоты здесь ваш запрос может быть просто
SELECT start, (end - start) AS difference FROM foo;
но для более сложных вещей рекомендуется много манипулировать данными на стороне приложения.
В другом ответе говорится, что логика должна быть как можно ближе к БД (что ИМО - ужасная идея), хотя в этом случае я не вижу ничего плохого в том, что вы делаете, но просто помните, что база данных уже выполняет много работы, чтобы просто получить вам данные, если вы будете много логиковать с базой данных, это сделает ее намного медленнее. Для небольших приложений это не имеет большого значения, но для крупномасштабных приложений вы очень быстро увидите последствия не только для производительности, но и для добавления новой функциональности (логика разделения между базой данных и уровнем приложения становится очень запутанной и сложной для рефакторинга).