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

comparando fechas para realizar acciones

Estas en el tema de comparando fechas para realizar acciones en el foro de Mysql en Foros del Web. Hola ,estoy jartico de leerme artículos sobre fechas porque siempre me dan problemas, esta vez tengo una duda sobre consultas sql relacionadas con fechas. Lo ...
  #1 (permalink)  
Antiguo 22/04/2009, 11:48
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
comparando fechas para realizar acciones

Hola ,estoy jartico de leerme artículos sobre fechas porque siempre me dan problemas, esta vez tengo una duda sobre consultas sql relacionadas con fechas.
Lo que quiero hacer es borrar filas de mi tabla Mysql si han pasado determinados dias (en el ejemplo 10) desde la fecha que se insertó la fila y el dia de hoy; lo hago de esta forma y no me funciona .

Bueno quizás no me he explicado del todo bien, el tema de borrarlo ya se yo como es , lo que no consigo es recuperar las filas que necesito.

$actualizar="SELECT AdId,Email FROM ".$lang."_adds WHERE (Date - $fecha_actual > 10)";

un saludo y gracias nuevamente.
  #2 (permalink)  
Antiguo 22/04/2009, 11:54
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: comparando fechas para realizar acciones

Hola Dundee, creo que el foro correcto es MySQL.

Sin embargo, hay una funcion que te permite hacer substraccion de dos fechas retornando el numero de dias de diferencia: DATEDIFF(fecha1,fecha2), esta función es de MySQL.
  #3 (permalink)  
Antiguo 22/04/2009, 12:00
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: comparando fechas para realizar acciones

Cita:
Iniciado por SergeMedina Ver Mensaje
Hola Dundee, creo que el foro correcto es MySQL.

Sin embargo, hay una funcion que te permite hacer substraccion de dos fechas retornando el numero de dias de diferencia: DATEDIFF(fecha1,fecha2), esta función es de MySQL.
Bueno gracias , lo he preguntado aquí porque trabajo con php y mysql y no tenía muy claro donde hacerlo ya que todo esta muy relacionado, además ¿esa función que comentas como la uso dentro de php ?, es decir yo tengo mi sentencia
$actualizar="SELECT AdId,Email FROM ".$lang."_adds WHERE DATEDIFF(Date,$fecha_actual)>0";
//El Date en negrita es el campo Date de mi tabla

y no me funciona porque seguramente la escriba mal ,además las fechas las tengo en formato (digo guardadas en la bd ) Y-m-d ¿en que formato tienen que estar para poder compararlas con esa función?.

Gracias
  #4 (permalink)  
Antiguo 22/04/2009, 12:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: comparando fechas para realizar acciones

Puedes usar DATE_SUB:
Código MySQL:
Ver original 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 22/04/2009, 12:05
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: comparando fechas para realizar acciones

Que error te arroja mysql?
  #6 (permalink)  
Antiguo 22/04/2009, 12:23
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: comparando fechas para realizar acciones

Cita:
Iniciado por David el Grande Ver Mensaje
Puedes usar DATE_SUB:
Código MySQL:
Ver original 
Ok si he entendido bien haciendo esto que me comentas:
$consulta="SELECT AdId,Email FROM ".$lang."_adds WHERE Date BETWEEN DATE_SUB(CURDATE(), INTERVAL 10 DAY) AND CURDATE()";

lo que consigo es que seleccione todas las filas que se insertaron desde hoy hasta 10 dias atrás ¿no?, pero el tema es que yo necesito que me selecciones solamente las filas isnertadas hace por ejemplo 10 dias , pero no desde 0 a 10 dias ¿se entiende?, el tema es que no se como escribir la sintaxis.

Un saludo y gracias de nuevo por la ayuda.
  #7 (permalink)  
Antiguo 22/04/2009, 12:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: comparando fechas para realizar acciones

En ese caso usa una comparación de igualdad (en lugar de BETWEEN):
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha = DATE_SUB(CURDATE(), INTERVAL 10 DAY);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 22/04/2009, 12:39
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: comparando fechas para realizar acciones

Cita:
Iniciado por David el Grande Ver Mensaje
En ese caso usa una comparación de igualdad (en lugar de BETWEEN):
Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha = DATE_SUB(CURDATE(), INTERVAL 10 DAY);
Mil gracias eso es lo que necesitaba ¡¡funciona ¡¡ , voy a repasarme las funcines mysql que veo son de gran utilidad.

Un saludi y gracias por todo
  #9 (permalink)  
Antiguo 22/04/2009, 12:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: comparando fechas para realizar acciones

Tema trasladado desde PHP
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 23:43.