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

[SOLUCIONADO] duda sobre fecha en mysql

Estas en el tema de duda sobre fecha en mysql en el foro de Mysql en Foros del Web. buenas noches, espero que estén bien, tengo el siguiente código SQL y me está generando error lo que está en color rojo, me podrían ayudar ...
  #1 (permalink)  
Antiguo 25/06/2013, 19:35
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
duda sobre fecha en mysql

buenas noches,

espero que estén bien, tengo el siguiente código SQL y me está generando error lo que está en color rojo, me podrían ayudar por favor? de antemano muchas gracias

Código MySQL:
Ver original
  1. INSERT INTO `dbventas`.`tblvendedor` (`nombre`, `telefono1`, `telefono2`, `telefono3`,
  2. `direccion1`, `direccion2`, `email1`, `email2`, `password`, `ciudad`, `pais`, `fecha_caducidad`)
  3.  VALUES ('".$this->getnombre()."', '".$this->gettelefono1()."', '".$this->gettelefono2()."',
  4. '".$this->gettelefono3()."', '".$this->getdireccion1()."', '".$this->getdireccion2()."', '".$this->getciudad()."',
  5. '".$this->getpais()."', '".$this->getemail1()."', ".$this->getemail2().", ".$this->getpassword().",
  6. 'DATE_ADD(NOW(), INTERVAL 12 MONTH)')

también lo intengo hacer así:

Código MySQL:
Ver original
  1. SET @fecha_caducidad = select DATE_ADD(NOW(), INTERVAL 12 MONTH);
  2.  
  3. INSERT INTO `dbventas`.`tblvendedor` (`nombre`, `telefono1`, `telefono2`, `telefono3`, `direccion1`,
  4. `direccion2`, `email1`, `email2`, `password`, `ciudad`, `pais`, `fecha_caducidad`)
  5. VALUES ('".$this->getnombre()."', '".$this->gettelefono1()."', '".$this->gettelefono2()."',
  6. '".$this->gettelefono3()."', '".$this->getdireccion1()."', '".$this->getdireccion2()."', '".$this->getciudad()."',
  7. '".$this->getpais()."', '".$this->getemail1()."', ".$this->getemail2().", ".$this->getpassword().",
  8. '@fecha_caducidad');

pero tampoco me funciona.

lo que intento es guardar la fecha de seis meses más adelante a la fecha actual en que se inserta el registro.


el lenguaje que uso es php y los métodos get que ven en los dos querys en mysql, son funciones de encapsulamiento que tengo para los atributos de la clase.

de antemano muchas gracias por su colaboración.
__________________
http://tecnologiaco.com/
  #2 (permalink)  
Antiguo 25/06/2013, 19:41
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: duda sobre fecha en mysql

En realidad es un problema muy simple: Al poner entre apoóstrofos (') la función, deja de existir como tal y pasa a ser una cadena de texto que dice "'DATE_ADD(NOW(), INTERVAL 12 MONTH)".
Igualmente, cuando pones una variable de usuario entre apóstrofos, se convierte en una cadena de texto.

Ten en cuenta que el SQL no es el PHP. En PHP puedes poner variables dentro de una cadena y PHP reemplazará esa variable por su contenido. Pero eso no sucede en SQL.
Para que te funcione debes dejar la función SQL pura, sin apóstrofos:
Código MySQL:
Ver original
  1. INSERT INTO `dbventas`.`tblvendedor` (`nombre`, `telefono1`, `telefono2`, `telefono3`,
  2. `direccion1`, `direccion2`, `email1`, `email2`, `password`, `ciudad`, `pais`, `fecha_caducidad`)
  3.  VALUES ('".$this->getnombre()."', '".$this->gettelefono1()."', '".$this->gettelefono2()."',
  4. '".$this->gettelefono3()."', '".$this->getdireccion1()."', '".$this->getdireccion2()."', '".$this->getciudad()."',
  5. '".$this->getpais()."', '".$this->getemail1()."', ".$this->getemail2().", ".$this->getpassword().",

O bien:
Código MySQL:
Ver original
  1. SET @fecha_caducidad = DATE_ADD(NOW(), INTERVAL 12 MONTH);
  2.  
  3. INSERT INTO `dbventas`.`tblvendedor` (`nombre`, `telefono1`, `telefono2`, `telefono3`, `direccion1`,
  4. `direccion2`, `email1`, `email2`, `password`, `ciudad`, `pais`, `fecha_caducidad`)
  5. VALUES ('".$this->getnombre()."', '".$this->gettelefono1()."', '".$this->gettelefono2()."',
  6. '".$this->gettelefono3()."', '".$this->getdireccion1()."', '".$this->getdireccion2()."', '".$this->getciudad()."',
  7. '".$this->getpais()."', '".$this->getemail1()."', ".$this->getemail2().", ".$this->getpassword().",
  8. @fecha_caducidad);
__________________
¿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 25/06/2013, 20:18
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: duda sobre fecha en mysql

gracias por la respuesta pero aún no se soluciona, estoy viendo todas las alternativas.

para volver a postear en este tema.
__________________
http://tecnologiaco.com/
  #4 (permalink)  
Antiguo 25/06/2013, 20:28
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: duda sobre fecha en mysql

Explicate mejor a qué te refieres con "aún no se soluciona".
Lo que te estoy planteando es algo concreto que puedes verificar sin lugar a dudas.
Lo que sí te recomiendo es que captures la sentencia tal y como la envías a MySQL, es decir, una vez que PHP reemplaza las variables por sus contenidos, y veamos si no estás metiendo valores incorrectos.
¿Y a qué te refieres con "alternativas"?
Una función o la usas bien, o la usas mal. No hay "alternativas".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 26/06/2013, 06:05
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: duda sobre fecha en mysql

vale gnzsoloyo, muchas gracias por tu interes en ayudarme, hoy en la noche que llegue a mi casa te envío el string que está armando php antes de ejecutarlo en la BD (mysql).
__________________
http://tecnologiaco.com/
  #6 (permalink)  
Antiguo 26/06/2013, 18:16
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: duda sobre fecha en mysql

la respuesta es la que tu me diste gnzsoloyo, muchas gracias

TEMA SOLUCIONADO
__________________
http://tecnologiaco.com/

Etiquetas: fecha, insert, php, registro, select, sql
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 09:43.