2014-11-18 10 views

risposta

14

Il MOD function dovrebbe funzionare:

SELECT MOD(10.1234, 1); 
-- -> 0.1234 
+0

preferisco questa soluzione in quanto valuta l'espressione solo una volta (che è molto utile in molti casi, ad esempio se chiami un 'RAND()' o una funzione pesante e/o mutante) – gaborsch

2

sufficiente sottrarre la parte intera:

select mynumber - truncate(mynumber,0) from mytable; 
2

È inoltre possibile utilizzare sotto ...

select substring_index(field1,'.',1), substring_index(field1,'.',-1) from table1; 

uscita Esempio

mysql> select substring_index(120.45,'.',1), substring_index(120.45,'.',-1) ; 
+-------------------------------+--------------------------------+ 
| substring_index(120.45,'.',1) | substring_index(120.45,'.',-1) | 
+-------------------------------+--------------------------------+ 
| 120       | 45        | 
+-------------------------------+--------------------------------+ 
1 row in set (0.00 sec) 
+0

Puoi aggiungere una spiegazione invece del solo codice? – eirikir

+0

utilizzata la funzione stringa substring_index per estrarre parte integrale e parte decimale .. (https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring-index) – Phaneendra

+0

Se il numero non ha un "." (un numero intero), che non funziona correttamente. –

Problemi correlati