A quanto ne so, sprintf() non permette di impostare il separatore delle migliaia.

Salva nel DB uno pseudo formato, creati una funzione che ne effettua il parsing, estrae i parametri necessari a number_format() e poi esegue tale funzione.