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

Insertar campo de fecha (DATE)

Estas en el tema de Insertar campo de fecha (DATE) en el foro de Mysql en Foros del Web. Hola, soy nuevo en este foro y este es mi primer mensaje, por lo que envio un saludo a todos los foreros de por aqui. ...
  #1 (permalink)  
Antiguo 09/02/2006, 13:53
 
Fecha de Ingreso: febrero-2006
Mensajes: 5
Antigüedad: 18 años, 2 meses
Puntos: 0
Insertar campo de fecha (DATE)

Hola, soy nuevo en este foro y este es mi primer mensaje, por lo que envio un saludo a todos los foreros de por aqui.
Paso a exponer mi problema/pregunta:
Había probado el MySQL en local (en mi PC) y cuando intentaba hacer un insert desde PHP con alguna fecha incorrecta tal como (2006-13-21) , fallaba el insert devolviendo un handler nulo y por tanto sin llevar a cabo la inserción del registro. Ahora hago exactamente lo mismo en el host (he subido los programas PHP) y me hace el insert poniendo como fecha: 0000-00-00 . Lo mismo ocurre si un campo TIME tiene una hora no válida (ej. 25:00), en cuyo caso inserta 00:00 .
Me pregunto si es que hay que definir algún parámetro para que compruebe si las fechas y horas son válidas y no realice el insert en caso de que no lo fueran, o tal vez es causa de diferentes versiones del MySQL en mi PC y el del host?
Si no se puede hacer esa validación de forma automática, alguien sabe donde encontrar alguna rutina o script que sirva para validar fechas y horas antes de proceder al insert?
  #2 (permalink)  
Antiguo 10/02/2006, 14:22
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Cuando haces un insert a la base de datos de los campos de tipo fecha(date o datetime) o tiempo (time) tienes que hacerlo en el formato de la base de datos que es aaaa-mm-dd y HH:MM:SS respectivamente, ya que si no lo haces en el formato de la base de datos insertara el default establecido que normalmente es 0000-00-00, ahora si tu trabajas con fechas en el formato dd-mm-aaaa, tienes que llevarlos al formato de la base de datos antes de insertarlo, ahora sobre informacion sobre eso, hay bastante en google, si buscas algo en php ya hay ejemplos en los faqs de php (dentro del foro de php), lo unico que tienes que hacer es ir a revisar y talvez adaptarlos a tu problema si es que es necesario, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 11/02/2006, 12:54
 
Fecha de Ingreso: febrero-2006
Mensajes: 5
Antigüedad: 18 años, 2 meses
Puntos: 0
Gracias, la verdad es que ya he visto la diferencia de comportamiento entre el MySQL que tengo en mi PC y el que tengo en el host. En la configuración del que tengo en el PC pone: sql_mode='STRICT_ALL-TABLES' y en el otro no. Eso indica que en un caso no hace el insert y en el otro si lo hace aunque la fecha en ambos casos sea la misma (inválida). Era una forma de ahorrarme la validación de los datos introducidos por el usuario mediante programación adicional, pero al final creo que no se me excusa hacer esa validación, ya que al ser un servidor compartido y no dedicado el del host, no puedo cambiar la configuració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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:09.