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

No me sale sentencia SQL

Estas en el tema de No me sale sentencia SQL en el foro de Mysql en Foros del Web. En la web que he creado, estoy creando un nuevo apartado llamado "Añadidos Recientemente"; en el cual se muestren los animales que han sido añadidos ...
  #1 (permalink)  
Antiguo 25/10/2010, 14:35
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
No me sale sentencia SQL

En la web que he creado, estoy creando un nuevo apartado llamado "Añadidos Recientemente"; en el cual se muestren los animales que han sido añadidos o modificada su informacion en el dia de hoy, ultimos 3 dias, ultimos 7, ultimos 15 y ultimos 30.

Yo tengo un campo en mi BBDD llamado "Modificacion"; en el cual, cuando añades un nuevo animal o modificas la informacion del mismo, te guarda la fecha de ese momento; por lo tanto, querria saber como tengo que hacer la SQL; yo creo que con el datediff, pero no me termina de salir.

Esto es lo que yo tengo: Select * From mitabla Where Disponible = 1 and datediff (getdate, fechamodificacion) < 3

Pero esto no me funciona

¿Alguna idea de que tengo que hacer?

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 25/10/2010, 23:19
Avatar de berthely  
Fecha de Ingreso: junio-2008
Ubicación: VHSA Mexico
Mensajes: 453
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: No me sale sentencia SQL

creo que debes de utilizar la clausula BETWEEN para comparar fechas, lo que debes de hacer es generar una fecha n dias antes del dia actual y la actual y comparar el valor con la clausula BETWEEN, quedaria
SELECT *
FROM tabla
WHERE fecha_modificacon BETWEEN fecha_n_dias_antes_de_hoy AND fecha_de_hoy

Espero haberme explicado
  #3 (permalink)  
Antiguo 26/10/2010, 02:56
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Respuesta: No me sale sentencia SQL

Asumo que estás trabajando con mySql. Traslado el tema al foro correspondiente.

trasladado desde Web general

saludos
__________________
Javascript Códigos - Bambú difunde
  #4 (permalink)  
Antiguo 26/10/2010, 05:27
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me sale sentencia SQL

Perdon por colocarlo en web general, no me habia fijado que habi uno dedicadao a MySql.

Creo que lo he entendido, tengo que hacer la consulta por ejemplo:

Select * From mascotas Where fechamodificacion between 5 (n ºdias antes de hoy, es decir, el 21) and fechadehoy (getdate())-

¿Esto es correcto o debo colocar en luhar de 5 21/10/10?La cosa es que si tengo que colocar el 21, no se muy bien como hacerlo, ya que esto seria una consulta que se ejecutaria todos los dias, y que "nºdias antes de hoy" no sabria como calcularlo

Muchas gracias
  #5 (permalink)  
Antiguo 26/10/2010, 05:29
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me sale sentencia SQL

Lo acabo de probar en mysql, y tengo que poner en "nº dias antes de hoy" una fecha completa, y claro si pongo getdate - 5 no se si serviria para que me calculara la fecha de hoy - 5 dias,

¿Alguna idea? Muchas gracias
  #6 (permalink)  
Antiguo 26/10/2010, 07:30
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: No me sale sentencia SQL

Mira la función DATE_SUB de mysql.

http://dev.mysql.com/doc/refman/5.0/...functions.html

puedes poner 30dias, o dios minutos o si lo quieres 20 años.

si tienes dudas, postealas.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 26/10/2010, 08:15
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me sale sentencia SQL

He probado con varias cosas, pero ninguna funciona, no termino de entender el que hago mal:


SELECT * FROM mascotas WHERE Modificacion(CURDATE(),INTERVAL 30 DAY)


Esta deberia sacar la fecha actua y sacar intevalo de 30 dias; aunque le ponga un <> 0 o <> 9999 no va; es decir, este no se porque no funciona



SELECT * FROM mascotas WHERE dato (SELECT DATEDIFF('Modificacion','cudate()') > 5

En cuanto a este, pretendo que me haga una setencia de todos los datos, y en cada uno de ellos, que me haga una diferencia de fechas; y si es menor de X que lo saque.



Soy un poquillo torpe con esto; ¿alguna idea de en que estoy metiendo la pata?

Muchas gracias
  #8 (permalink)  
Antiguo 26/10/2010, 08:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: No me sale sentencia SQL

Cita:
Soy un poquillo torpe con esto; ¿alguna idea de en que estoy metiendo la pata?
El problema que tienes es que solicitas ayuda y nisiquiera lees lo que te recomiendan.

te dije que con la función DATE_SUB solucionas tu problema y has pasado por alto mi comentario.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #9 (permalink)  
Antiguo 26/10/2010, 08:21
Avatar de berthely  
Fecha de Ingreso: junio-2008
Ubicación: VHSA Mexico
Mensajes: 453
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: No me sale sentencia SQL

Cita:
Iniciado por huesos52 Ver Mensaje
el problema que tienes es que solicitas ayuda y nisiquiera lees lo que te recomiendan.

Te dije que con la función date_sub solucionas tu problema y has pasado por alto mi comentario.
:-d
  #10 (permalink)  
Antiguo 26/10/2010, 08:41
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me sale sentencia SQL

Si que he mirado la ayuda, el enlace que me habeis dado, y lo he probado;

SELECT * FROM mascotas WHERE DATE_UB(CURDATE(),INTERVAL 30 DAY) <= modificacion

(lo he probado asi porque leyendo lo que ponia es lo que he sorbeentendido (ya que no se explicaba muy bien) que tenia que poner teniendo en cuenta lo que yo busco.

De todas, formas, os agradezco la ayuda, pero no me funciona, y me da el siguiente error en la SQL:

#1064 - 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 ') <= modificacion LIMIT 0, 30' at line 1

Muchas gracias
  #11 (permalink)  
Antiguo 26/10/2010, 08:48
Avatar de victor5atodogas  
Fecha de Ingreso: junio-2010
Mensajes: 447
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: No me sale sentencia SQL

Al final yo solito lo he sacado:

SELECT * FROM mascotas WHERE modificacion > (DATE_SUB(NOW(),INTERVAL 8 day))

8 o lo que me de la gana pone a la hora de comprobar en dias

Etiquetas: sale, sentencia, 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 00:35.