Igual sugeriría buscar una solución por parte de SQL... al menos en MySQL se cuenta con la función DATE_FORMAT() la cuál da formato de salida y, obviamente, esto resulta más óptimo. El uso de esta función --por si igual esta disponible en ACCESS y/u Oracle-- sería:
Código:
SELECT DATE_FORMAT(campo_fecha, '%d-%m-%Y') AS fecha FROM tabla
Tunait: respecto a el uso de la función date(), ésta solo sirve pasándole una fecha en TIMESTAMP. Así que, para utilizarla primero necesitarías pasar tu fecha por la función mktime() ó strtotime(); ignoro si con la última te reconosca el formato directo... pero para la primera tendrías que hacer --en tu caso-- un explode() para ocuparla...
definitivamente no es mejor de lo que tienes pero es lo que se tendría que hacer... solo como comentarios.
Suerte!