¿Qué hago?

| |||
¿Cómo poder colocar 0 al inicio en la informacion de una Base de Datos? Bueno, resulta que tengo un proyecto en el que la empresa tiene asignado un numero para cada uno de sus trabajadores, por ejemplo el 009897 entonces me habian pedido que en la base de datos pusiera 9897 pero ahora que ya están usando el sistema quieren que les ponga 002374 por que están acostumbrados a poner el 00 al inicio -_- asi que al tratar de modificar un numero en la base de datos (uso PHPMyAdmin) y le pongo el 00 no se guardan los 00 a la izquierda y sigue siendo 9897. ¿Qué hago? ![]() |
| ||||
Respuesta: ¿Cómo poder colocar 0 al inicio en la informacion de una Base de Datos? NVARCHAR no es un tipo de dato en MySQL. Deberás usar VARCHAR, e incluso puedes usar CHAR. Fuera de eso, es cierto, mientras sea numérico, los ceros a la izquierda no existen (si lo recuerdas, también te lo decían en la escuela), por ello deberás controlar muy bien en programación el problema.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: ¿Cómo poder colocar 0 al inicio en la informacion de una Base de Datos? Hola JamesWhannel: Al margen de lo que ya te comentaron skyz y gnzsoloyo, creo que estás equivocando el enfoque del problema. Una cosas es lo que almacena la Base de Datos y otra muy distinta lo que le presentas al usuario... Me parece una mala idea el que pienses en cambiar el tipo de dato de tu columna sólo para presentar los dos ceros a la izquiera... si bien ponerlo como VARCHAR solucionaría esta situación, la verdad no le veo razón para tener que hacerlo... este tipos de cambios en la BD pueden traerte muchos dolores de cabeza, sobre todo si estamos hablando de que el campo sea llave primaria (lo cual veo muy posible). En lo particular, creo que la opción ZEROFILL es la más indicada... Esta opción te permite rellenar con ceros a la izquierda hasta alcanzar la longitud que indicaste al campo... observa este ejemplo:
Código MySQL:
Ver original Observa que estoy introduciendo valores numéricos de distintas longitudes, así por ejemplo inserto el 1 o el 002374, a la BD esto no lo interesa, hablando de valores numéricos un cero a la izquierda NO ES SIGNIFICATIVO, sin embargo al momento de la creación de la tabla especifiqué que los números DEBEN TENER UNA LONGITUD DE 6 CARACTERES, al momento de hacer UN SELECT A LA TABLA obtengo lo siguiente:
Código MySQL:
Ver original es decir, independientemente de que inserté un 1 o un 9897, al hacer el SELECT se muestra con los ceros a la izquierda que especifiqué... esto no quiere decir que en la BD se inserte el valor tal cual, ya que se siguen insertando como números, es solo presentación... al momento de hacer una búsqueda, no importa si pones los ceros o no... SIGUE SIENDO UN NUMERO.
Código MySQL:
Ver original Saludos Leo. |
| ||||
Respuesta: ¿Cómo poder colocar 0 al inicio en la informacion de una Base de Datos? ![]() Eso pasa cuando andamos saltando de DBMS... ![]() En este momento a mi se me hacen enredos haciendo stored procedures para Oracle y MySQL. ![]()
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: ¿Cómo poder colocar 0 al inicio en la informacion de una Base de Datos? Muy interesante lo que expones leonardo_jose, desconocia eso del ZEROFILL Gracias a todos por sus respuestas. |
Etiquetas: |