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

Mysql: interval

Estas en el tema de Mysql: interval en el foro de Bases de Datos General en Foros del Web. Un saludo a tod@s tengo esto: $fecha = date("d-m-Y"); $RESULT=mysql_query("SELECT FECHA FROM TABLA WHERE DATE_SUB('$fecha', INTERVAL 2 DAY)",$conectar); mm bueno lo que quiero hacer.. es ...
  #1 (permalink)  
Antiguo 02/11/2004, 15:50
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
interval

Un saludo a tod@s

tengo esto:

$fecha = date("d-m-Y");
$RESULT=mysql_query("SELECT FECHA FROM TABLA WHERE DATE_SUB('$fecha', INTERVAL 2 DAY)",$conectar);

mm bueno lo que quiero hacer.. es que me muestre un mensaje durante un tiempo de 2 días después de la ultima fecha ingresada.. y que luego de estos dos dias no muestre nada...

Es decir.. si la última fecha en mi tabla es 2004-10-31 que me muestre un mensaje hasta el 2004-11-02... pero no logro hacerlo!!!
  #2 (permalink)  
Antiguo 02/11/2004, 17:41
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Prueba esto:

select fecha from tabla where datediff(now(),fecha)=2;

Esto devuelve los registros cuya fecha sea menor en 2 dias respecto de hoy, por tanto, si se devuelven registros debes mostrar el mensaje.
Puedes reemplazar now() por '$fecha' si quieres comparar con una fecha diferente de la actual (now()=fecha y hora actual)

Nota:
- sólo funciona para mysql 4.1.1 en adelante.
- recuerda que datesub() devuelve una fecha, no los dias de diferencia.

Otra forma sería:

$mes=date("n");
$dia=date("d");
$año=date("Y");

$hace_2_dias=date("Y/n/d",mktime(0,0,0,$mes,$dia-2,$año));
$sql="select fecha from tabla where fecha='$hace_2_dias'";
$result=mysql_query($sql,$conectar);
  #3 (permalink)  
Antiguo 03/11/2004, 06:57
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Me resulta un error...

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /scsi/home_web/php/kairos/pendientes.php on line 107


y esto es lo que tengo...

Código PHP:
$fecha date("d-m-Y");
$RESULT2 mysql_query("select FEVIGENCIA form TIKA_NOVEDADES where datediff('$fecha',FEVIGENCIA)=2"$conectar);
while (
$ROW2 mysql_fetch_array($RESULT2))
{
echo 
$mensaje;


que tendré mal?...
  #4 (permalink)  
Antiguo 04/11/2004, 07:37
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
No, ni idea?.. sigo en el mismo punto...
  #5 (permalink)  
Antiguo 04/11/2004, 09:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
al menos a simple vista tu consulta sql dice "form" en lugar "from"
  #6 (permalink)  
Antiguo 04/11/2004, 09:19
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
aahh no no.. eso fué cuando lo digite aca en el foro.. el esta bien escrito..y me sigue sacando el mismo error.. no se que le pasa...
  #7 (permalink)  
Antiguo 04/11/2004, 09:24
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
agregale esto para que veas el error que se produce segun mysql.

$RESULT2 = mysql_query("select FEVIGENCIA form TIKA_NOVEDADES where datediff('$fecha',FEVIGENCIA)=2", $conectar) or die(mysql_error());

de ahi sabremos que pasó con la consulta.
  #8 (permalink)  
Antiguo 04/11/2004, 09:27
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '('04-11-2004',FEVIGENCIA)=2' at line 1

ok, ese es el error que sale...

aahh creo que es por como tomo la fecha.. jaja es lo seguro.. no coincide.. bueno arreglo eso y te cuento.. gracias
  #9 (permalink)  
Antiguo 04/11/2004, 09:31
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
mmmm la fecha en mi base de datos esta asi:

2004-10-31



y me sigue saliendo el mismo error...


You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '('2004-11-04',FEVIGENCIA)=2' at line 1
  #10 (permalink)  
Antiguo 04/11/2004, 09:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
recuerda la nota del primer mensaje que te envié.

detediff() sólo funciona para mysql 4.1.1 en adelante. Revisa tu version de mysql. Si no igual o superior a la 4.1.1 entonces usa la otra forma que te indicaba.
  #11 (permalink)  
Antiguo 04/11/2004, 09:38
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
mm tengo la version.. 4012 :(
  #12 (permalink)  
Antiguo 04/11/2004, 09:41
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
$mes=date("n");
$dia=date("d");
$alo=date("Y");
$hace_2_dias=date("Y/n/d",mktime(0,0,0,$mes,$dia-2,$alo));
$sql="select FEVIGENCIA from TIKA_NOVEDADES where FEVIGENCIA = '$hace_2_dias'";
$RESULT2=mysql_query($sql,$conectar);




gracias.. funciona perfecto!
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 19:00.