Questo è uno dei tanti motivi per cui PostgreSQL money
type è stato ritirato e dovrebbe essere evitato
. Stranamente le versioni più recenti della stessa documentazione non mostrano l'avviso di ritiro ma io e altri
non sono d'accordo e penso che il suo utilizzo dovrebbe essere scoraggiato.
Se possibile, modifica lo schema per utilizzare numeric
invece, come numeric(17,2)
se vuoi memorizzare solo centesimi interi o qualcosa di più preciso per valori intermedi. Avrai un incubo lavorando con money
in HQL, al punto che persino BigDecimal
di Java class (di solito usata per mappare numeric
campi) è migliore nonostante la sintassi terribilmente goffa della sua aritmetica.
Farei un ALTER TABLE blah ALTER COLUMN blahcol TYPE numeric(17,2) USING ( regexp_replace(blahcol::text, '[$,]', '', 'g')::numeric );
e dimentica il money
tipo esisteva se fossi in te.