CAST à DECIMAL dans MySQL
Je suis en train de jeter à la Décimale dans MySQL comme ceci:
CAST((COUNT(*) * 1.5) AS DECIMAL(2))
Je suis en train de convertir le nombre de lignes dans une table (de 1,5 fois) pour un nombre à virgule flottante avec deux chiffres après la virgule.
Code SQL:
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
(COUNT(*) * 1.5) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
Il se produit une erreur:
#1064 - You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'CAST((COUNT(*) * 1.5) AS DECIMAL(12,2))' at line 1.
Un autre essai, cette distribution ne fonctionne pas:
SELECT CONCAT(Guardian.title, ' ',
Guardian.forename, ' ',
Guardian.surname) AS 'Guardian Name',
COUNT(*) AS 'Number of Activities',
CAST((COUNT(*) * 1.5) AS DECIMAL(8,2)) AS 'Cost'
FROM Schedule
INNER JOIN Child ON Schedule.child_id = Child.id
INNER JOIN Guardian ON Child.guardian = Guardian.id
GROUP BY Guardian
ORDER BY Guardian.surname, Guardian.forename ASC
Comment puis-je utiliser mysql sorts entier en décimal?
source d'informationauteur Ben
Vous devez vous connecter pour publier un commentaire.
De MySQL docs: Fixe-les Types de points (Valeur Exacte) - DECIMAL, NUMERIC:
Donc, vous êtes la conversion d'un nombre à 2 chiffres entiers et 0 chiffres après la virgule. Essayez plutôt ceci:
MySQL jette à la Décimale:
Jeté nu entier décimal:
Fonte des Entiers 8/5 décimal:
Cast chaîne décimale:
Fonte de deux variables de type int dans un décimal
Cast décimal retour à la chaîne:
DECIMAL
a deux parties:Precision
etScale
. Donc, une partie de votre requête devrait ressembler à ceci:Precision
représente le nombre de chiffres significatifs qui sont stockées pour les valeurs.Scale
représente le nombre de chiffres qui peuvent être stockés après le point décimal.