Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Novato en Mysql

Estas en el tema de Novato en Mysql en el foro de Mysql en Foros del Web. hola soy novato en mysql y tengo problemas con cosas que deberian ser simples... intento definir un campo como decimal con 3 digitos de parte ...
  #1 (permalink)  
Antiguo 21/05/2011, 09:31
 
Fecha de Ingreso: julio-2002
Mensajes: 61
Antigüedad: 21 años, 10 meses
Puntos: 1
Novato en Mysql

hola
soy novato en mysql y tengo problemas con cosas que deberian ser simples...

intento definir un campo como decimal con 3 digitos de parte entera y 2 decimales

he probado con float(5,2) y decimal(5,2), pero en ambos casos, meto el valor "23.55", por ejemplo, y en la tabla se almacena "23.00".

uso phpmyadmin

gracias
  #2 (permalink)  
Antiguo 21/05/2011, 09:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Novato en Mysql

Estás teniendo un problema de redondeos, pero para saber qué lo causa necesitaríamos ver mejor los INSERT que haces y que verifiques que el redondeo en cuestión no se esté produciendo en la aplicación que usas.
El tema es simple:
Código MySQL:
Ver original
  1. mysql> create table prueba_decimales(valor1 decimal(5,2), valor2 float(5,2));
  2. Query OK, 0 rows affected (0.13 sec)
  3.  
  4. mysql> insert into prueba_decimales values(22.55,22.55);
  5. Query OK, 1 row affected (0.08 sec)
  6.  
  7. mysql> select * from prueba_decimales;
  8. +--------+--------+
  9. | valor1 | valor2 |
  10. +--------+--------+
  11. |  22.55 |  22.55 |
  12. +--------+--------+
  13. 1 row in set (0.06 sec)
Como puedes ver, tu problema no está dado por los tipos de columna, pero posiblemente lo esté por la forma en que insertas los datos, sea en la aplicación o en el tipo de variables usado en la consulta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/05/2011, 12:13
 
Fecha de Ingreso: julio-2002
Mensajes: 61
Antigüedad: 21 años, 10 meses
Puntos: 1
Respuesta: Novato en Mysql

hola gnzsoloyo

no habia mencionado que las insert las hago desde vbscript, de esta forma

Código vb:
Ver original
  1. var_Valor = 23.45
  2.  
  3. SQLInsert = "Insert into TablaValoracion (ID,ValorM) values (" & var_ID & ",'" & var_Valor &  "')"
  4.  
  5. Set RSTValoracion = Conn.Execute(SQLInsert)

el campo ID es integer y no tengo ningun problema
el que me da problemas es ValorM

saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.