I'm one of those database should do data things so unless you're using an aggregate function most things like this should be done on the application end. Now for simplicity here your query could be just
SELECT start, (end - start) AS difference FROM foo;
but for more complicated things it's recommended that you do a lot of the data manipulation in the application side.
The other answer says to put the logic as close to the DB as possible (which IMO is a horrid idea) although in this case I see nothing wrong with what you're doing but just remember that the database is already doing a lot of work to just get you the data, if you're going to be doing a lot of logic on the database it's going to make it just that much slower. For small applications it's not a big deal but for large scale applications you will see implications very quickly not only in performance but adding new functionality (splitting logic between database and application level gets very confusing and hard to refactor).
SELECT start, end - start AS delta FROM foo;