[mysql] Ingresar valor numerico exacto
Saludos a todos: Les comento, genere una base de datos donde estoy cargando informacion de recetarios y los numeros de las recetas son 16 y siempre empiezan con 3 "ceros" al principio. Cuando cree la tabla : CREATE TABLE remedios (nombre VARCHAR(15), receta BIGINT(16), presentado DATE, aprobado DATE, rechazado DATE, entregado DATE, death DATE); Fijense que la entrada receta es un tipo de de datos BIGINT de 16 digitos, entonces al cargar datos: LOAD DATA INFILE ('rapamune','0006065168969', '2008-09-18', NULL, NULL,NULL); Pero la salida ignora los 'ceros' a la izquierda : mysql> SELECT * FROM remedios; +----------+------------+------------+----------+-----------+-----------+ | nombre | receta | presentado | aprobado | rechazado | entregado | +----------+------------+------------+----------+-----------+-----------+ | rapamune | 6065168969 | 2008-09-18 | NULL | NULL | NULL | +----------+------------+------------+----------+-----------+-----------+ Para que los acepte tengo que cambiar el tipo de datos de esa columna o con el mismo hay forma de que queden registrados?. Muchas gracias. Un fuerte abrazo. -- Hernán López Pardo http://otrodiaparaser.blogspot.com
On Wed, Sep 17, 2008 at 16:54, hernan lopez pardo <[email protected]> wrote:
Saludos a todos:
Les comento, genere una base de datos donde estoy cargando informacion de recetarios y los numeros de las recetas son 16 y siempre empiezan con 3 "ceros" al principio. Cuando cree la tabla :
CREATE TABLE remedios (nombre VARCHAR(15), receta BIGINT(16), presentado DATE, aprobado DATE, rechazado DATE, entregado DATE, death DATE);
Fijense que la entrada receta es un tipo de de datos BIGINT de 16 digitos, entonces al cargar datos:
LOAD DATA INFILE ('rapamune','0006065168969', '2008-09-18', NULL, NULL,NULL);
Pero la salida ignora los 'ceros' a la izquierda :
mysql> SELECT * FROM remedios; +----------+------------+------------+----------+-----------+-----------+ | nombre | receta | presentado | aprobado | rechazado | entregado | +----------+------------+------------+----------+-----------+-----------+ | rapamune | 6065168969 | 2008-09-18 | NULL | NULL | NULL | +----------+------------+------------+----------+-----------+-----------+
Siempre serán ceros los tres primeros? En tal caso, si no necesitás hacer operaciones numéricas y no tenés problemas de espacio ni de performance, podés usar tipo varchar. Si necesitás optimizar los indices y el espacio ocupado o hacer operaciones matemáticas, podés almacenarlos así y luego al momento de mostralos al usuario añadirle los ceros adelante. Pero primero averiguá si hay algún caso en que esos tres dígitos sean distintos de cero. -- Pablo Manuel Rizzo ---------------------------------------------------------------------- Aunque supiera que el mundo se acabará mañana, Igual plantaría mi manzano. -- Martin Luther King -- ----------------------------------------------------------------------
On Wednesday 17 September 2008 16:54:35 hernan lopez pardo wrote:
Saludos a todos:
Les comento, genere una base de datos donde estoy cargando informacion de recetarios y los numeros de las recetas son 16 y siempre empiezan con 3 "ceros" al principio. Cuando cree la tabla :
CREATE TABLE remedios (nombre VARCHAR(15), receta BIGINT(16), presentado DATE, aprobado DATE, rechazado DATE, entregado DATE, death DATE);
Fijense que la entrada receta es un tipo de de datos BIGINT de 16 digitos, entonces al cargar datos:
LOAD DATA INFILE ('rapamune','0006065168969', '2008-09-18', NULL, NULL,NULL);
Pero la salida ignora los 'ceros' a la izquierda :
mysql> SELECT * FROM remedios; +----------+------------+------------+----------+-----------+-----------+
| nombre | receta | presentado | aprobado | rechazado | entregado |
+----------+------------+------------+----------+-----------+-----------+
| rapamune | 6065168969 | 2008-09-18 | NULL | NULL | NULL |
+----------+------------+------------+----------+-----------+-----------+
Para que los acepte tengo que cambiar el tipo de datos de esa columna o con el mismo hay forma de que queden registrados?.
Muchas gracias.
Un fuerte abrazo.
esta bien lo datos como los guardas luego mostralos formateados y listo por ejmeplo usando printf()<< -- Dock Sud BBS http://bbs.docksud.com.ar telnet://bbs.docksud.com.ar
participants (3)
-
Fernando Toledo -
hernan lopez pardo -
Pablo Manuel Rizzo