Intento usar funciones en mi lenguaje de scripting siempre que se requieran cálculos como este. Mantengo el uso de mi función SQL al mínimo, por varias razones.
La razón principal es que mi base de datos SQL es responsable de alojar varios sitios web. Si el servidor SQL se empantanara con las solicitudes de un sitio, afectaría negativamente al resto. Esto es aún más importante a tener en cuenta si está trabajando en un servidor compartido, por ejemplo, aunque en este caso tiene poco control sobre lo que hacen los otros usuarios.
La razón secundaria es que me gusta que mi código SQL sea lo más portátil posible. Ni siquiera quiero probar para contar los diferentes sabores de SQL que existen, por lo que trato de mantener las funciones (especialmente las extensiones no estándar) fuera de mi código SQL, a excepción de cosas como SUM o MIN/MAX.
Supongo que lo que digo es que SQL está diseñado para almacenar y recuperar datos, y debe mantenerse para tal fin. Utilice su idioma de servicio elegido para realizar cualquier cálculo de antemano y mantenga su código SQL portátil.