2011-12-29 4 views
15

E 'possibile cambiare la virgola decimale da "." (punto) ad altro carattere (virgola) in uscita MySQL? Non voglio usare funzioni come FORMAT, voglio solo utilizzare tutte le query che uso normalmente senza alcuna modifica. Sto cercando alcune impostazioni (di alcune variabili, locali, ecc.). Ho provato a cercare il manuale ma senza successo.Cambia il separatore decimale in MySQL

+1

Non lo capisco davvero, cosa intendi con "output MySQL"? Visualizzazione di un risultato di una query tramite il client della riga di comando mysql? I valori numerici non hanno un separatore decimale definito da MySQL, ma sono definiti dal linguaggio e dal framework utilizzato per emetterli per uso umano. –

+1

@MattH, intendo qualsiasi output client (console, PHP, qualunque sia). Il problema in PHP è che ottieni sempre una stringa, anche se il campo del database è di tipo 'double'. Quindi non esiste una soluzione generica ovvia sul lato PHP, quindi stavo cercando in MySQL. – TMS

risposta

19

No, non è possibile. Questo è lo standard SQL e MySQL lo rispetta (almeno in quel punto).

Il problema non riguarda realmente l'output (come accennato, ci sono varie funzioni FORMAT nella maggior parte dei DBMS) ma con INSERT. Se è possibile utilizzare la virgola , ad esempio come punto decimale (che è comune in altre impostazioni internazionali) che viene utilizzato anche come separatore di valori, gli inserti diventerebbero ambigui. Vedere la mia risposta nella domanda: insert-non-english-decimal-points-in-mysql

+0

ypercube, grazie. Qual è lo standard SQL? La sintassi della query SQL o il formato di output o entrambi? Ho solo bisogno dell'output, così se seleziono 'select 1/3' emette' 0,33333'. – TMS

+0

Non sono sicuro che il formato di output sia specificato negli standard SQL o che non sia disponibile e possa essere diverso per diversi metodi/framework di connessione. Ma non conosco il modo di farlo in MySQL. –

21

Suggerimento per le esportazioni CSV: SELECT REPLACE(CAST(prijs_incl AS CHAR), '.', ',') vi darà input che può essere utilizzato come campi numerici in excelsheets europee.

+15

Utile, anche se puoi usare direttamente 'SELECT REPLACE (prijs_incl, '.', ',')' Dato che la conversione delle stringhe è automatica, vedi [mysql doc] (http://dev.mysql.com/doc/refman/5.0 /en/cast-functions.html#function_cast) – vicenteherrera