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

Error al insertar dato DATE en DB

Estas en el tema de Error al insertar dato DATE en DB en el foro de Mysql en Foros del Web. Hola gente como va? Les cuento, mi situación es esta: Por medio de un formulario de inscripción capto todos los datos del interesado, en donde ...
  #1 (permalink)  
Antiguo 18/09/2012, 07:01
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Pregunta Error al insertar dato DATE en DB

Hola gente como va?

Les cuento, mi situación es esta: Por medio de un formulario de inscripción capto todos los datos del interesado, en donde tengo 3 <select> en donde cada uno, en su conjunto, forman la fecha de nacimiento (<select>dia</select>,<select>mes</select>, <select>anio</select>), después formo una cuarta variable donde estos tres datos pasan a ser uno con el formato habitual de los datos DATE, pero cuando lo inserto en la base al campo seteado en DATE me lo carga en "0s", ahora si al mismo campo lo seteo en VARCHAR se carga correctamente la fecha, pero no es lo que necesito.

Como puedo solucionar esto? Gracias.
__________________
@vindt89
  #2 (permalink)  
Antiguo 18/09/2012, 07:42
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, 4 meses
Puntos: 2658
Respuesta: Error al insertar dato DATE en DB

La fecha debe tener el formato "YYYY-MM-DD", porque ese es el estandar que se usa (las razones son algo complicadas de explicar, pero tienen que ver con que la fecha se almacena en realidad como numero binario de punto flotante, y la fecha es la parte entera mientras que las horas son la decimal).
__________________
¿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 18/09/2012, 08:50
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Error al insertar dato DATE en DB

El formato es el correcto, armo la fecha tal cual al formato solicitado, pero sigo sin poder insertarlo, alguna solución al problema? me imagino que de alguna manera las paginas pueden registrar estos datos y poder comprarlos, sacar las edades y demás...
__________________
@vindt89
  #4 (permalink)  
Antiguo 18/09/2012, 08:52
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Error al insertar dato DATE en DB

Igual gnzsoloyo te agradezco por contestar... es medio complicado explicar así por encima como armo el dato sin poder insertar código PHP, en el foro de PHP no encontramos solución al problema por eso me vine acá...
__________________
@vindt89
  #5 (permalink)  
Antiguo 18/09/2012, 08:54
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, 4 meses
Puntos: 2658
Respuesta: Error al insertar dato DATE en DB

Postea un ejemplo del INSERT tal y como queda construido antes de enviarlo a ejecutar en MySQL.
No postees codico PHP. En este foro no está permitido código de programación.
Si te está devolviendo error de algún tipo, necesitamos saber cuál es el que recibes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 18/09/2012, 09:11
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Error al insertar dato DATE en DB

Este es el Insert que mando, carga todos los datos bien, sin problemas, para mi el problema esta entre que armo el dato "fecha_nacimiento" y que lo quiere grabar, ahí esta el problema.
O sea el valor de fecha de nacimiento esta armada así: $anio."-".$mes."-".$dia, o sea formando el YYYY-MM-DD, y asi y todo me graba todo en 0.

Código MySQL:
Ver original
  1. INSERT INTO 'labase' .`usuarios` (`id`,`categoria`, `usuario`, `pass`, `nombre`, `apellido`, `sexo`, `nacimiento`, `nacionalidad`, `email`,`activo`, `date_alta`, `ult_log`) VALUES (NULL,'user', '$usuario', '$pass1','$nombre', '$apellido', '$sexo', '$fecha_nacimiento', '$pais', '$email', '0', '$fecha_alta', '$fecha_alta');
__________________
@vindt89
  #7 (permalink)  
Antiguo 18/09/2012, 09:23
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, 4 meses
Puntos: 2658
Respuesta: Error al insertar dato DATE en DB

Ese es el codigo copiado del script de PHP.
Lo que te pido que postees es el insert ya con los valores de un caso de ejemplo y sin las variables.
Las variables esconden problemas, porque no podemos ver dentro de ellas para saber si está bien lo que contienen.
Captura un ejemplo con un echo y postea eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 18/09/2012, 09:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Error al insertar dato DATE en DB

Resultaba sospechoso esto: 'labase'
También imagino que activo es un campo numérico. Por lo que debes poner el número sin indicar que se trata de cadena.
Luego faltaría comprobar lo que te pide gnzsoloyo, qué valores estás pasando a través de esas variables.
Prueba así:
INSERT INTO labase.`usuarios` (`id`,`categoria`, `usuario`, `pass`, `nombre`, `apellido`, `sexo`, `nacimiento`, `nacionalidad`, `email`,`activo`, `date_alta`, `ult_log`) VALUES (NULL, 'user', '$usuario', '$pass1','$nombre', '$apellido', '$sexo', '$fecha_nacimiento', '$pais', '$email', 0, '$fecha_alta', '$fecha_alta');
  #9 (permalink)  
Antiguo 18/09/2012, 09:46
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, 4 meses
Puntos: 2658
Respuesta: Error al insertar dato DATE en DB

Tienes razón, jurena. Hay errores que no miré, porque me centré en el tema de la fecha.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 20/09/2012, 04:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Error al insertar dato DATE en DB

Yo tampoco sé si finalmente ese era el problema.En cualquier caso es importante que el armado de la fecha controle los meses y días por debajo del 10 con cero a la izquierda, es decir, enero es 01, y el día 8 de febrero sería 2012-02-08. Por supuesto en la inserción debe ir entre comillas.
  #11 (permalink)  
Antiguo 20/09/2012, 19:24
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Error al insertar dato DATE en DB

Les quiero agradecer dado que pude resolver el problema con su ayuda, tome tus cambios jurena y a su vez también le saque la propiedad de integer al dato, lo deje como string y entro sin problemas... MUCHAS GRACIAS!
__________________
@vindt89
  #12 (permalink)  
Antiguo 20/09/2012, 23:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Error al insertar dato DATE en DB

Pero es que si se trata de una fecha el tipo de campo debería ser DATE y no VARCHAR, si es que a eso te referieres cuando dices string. Si el campo donde cargas la fecha es de tipo DATE, ya está bien, pero si no es así, deberás resolver los problemas, pues no podrás realizarl luego las operaciones con fecha que deseas, o tendrás que hacer conversiones al vuelo que restarán eficiencia a la base.
  #13 (permalink)  
Antiguo 21/09/2012, 08:40
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, 4 meses
Puntos: 2658
Respuesta: Error al insertar dato DATE en DB

Cita:
Iniciado por vindt89 Ver Mensaje
Les quiero agradecer dado que pude resolver el problema con su ayuda, tome tus cambios jurena y a su vez también le saque la propiedad de integer al dato, lo deje como string y entro sin problemas... MUCHAS GRACIAS!
¿La propiedad Integer a qué dato? ¿A la variable o a la columna de la tabla?
¿El string, es de la variable o es, como dice Jurena, que la columna es un VARCHAR?

Si la variable en PHP era un Int, entonces es muy probable que el error fuese ese, ya que en el contexto, la operación "2012-09-21", convertida a int, sería 1988, lo que podría generar un error de datos al momento de insertar la fecha en un DATE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 22/09/2012, 10:50
 
Fecha de Ingreso: febrero-2012
Mensajes: 49
Antigüedad: 12 años, 2 meses
Puntos: 2
Respuesta: Error al insertar dato DATE en DB

El string es el que viene del formulario HTML, luego lo convertia en integer y después terminaba formando otro string cuando unia a los tres datos, lamentablemente no puedo poner codigo PHP para hacer mas facil el entendimiento.
Pero el problema era ese, el tipo de dato que enviaba a la base de datos, en la DB siempre el campo fue DATE.
Un abrazo!
__________________
@vindt89

Etiquetas: formulario, inserción
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 18:34.