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

Consulta de data SQL1

Estas en el tema de Consulta de data SQL1 en el foro de Mysql en Foros del Web. Buenas! Alguien me podria decir porfavor como hacer para que una consulta solo me coja los resultados en el que el campo dia sea mas ...
  #1 (permalink)  
Antiguo 27/05/2008, 14:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Consulta de data SQL1

Buenas!
Alguien me podria decir porfavor como hacer para que una consulta solo me coja los resultados en el que el campo dia sea mas grande que el dia de hoy, o sea, que el dia aun no haya pasado.
Tengo algo pensado con:
SELECT dia,poblacio,descripcio,horari,lloc,organitza, IF (DATEDIFF(CURDATE(),dia) < 0) FROM trobades

Me da 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 ') FROM trobades

Ayuda porfavor

Gracias, saludos!
  #2 (permalink)  
Antiguo 27/05/2008, 14:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Consulta de data SQL

Si el campo dia es date o datetime te valdría, creo, con esto
SELECT dia,poblacio,descripcio,horari,lloc,organitza from trobades where dia > curdate()
  #3 (permalink)  
Antiguo 27/05/2008, 15:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta de data SQL

Tienes razón, funciona perfectamente, no se porque me querido complicar tanto, no habia pensado tan simple.

Muchas gracias. Saludos
  #4 (permalink)  
Antiguo 27/05/2008, 15:35
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: Consulta de data SQL

El error de sintaxis también se estaba dando porque la sintaxis de la función IF() no estaba bien escrita.
__________________
¿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 27/05/2008, 17:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta de data SQL

Se puede hacer un ORDER BY primero por el dia y luego por el mes?
Es que tengo unas fechas y me gustaria ordenarlas, primero la que sea antes y asi.
Gracias
  #6 (permalink)  
Antiguo 27/05/2008, 17:16
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: Consulta de data SQL

Si la fecha es un solo campo DATE, por default te las ordena por dia/mes, si el tema es que quieres ordenarlas por dia separadamente del mes, puedes intentar ORDER BY DAY(fecha), MONTH(fecha).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/05/2008, 17:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta de data SQL

Si el campo es del tipo DATE.
Si hago un ORDER BY dia, me sale primero la fecha 1/07 después la 04/06 y finalmente la 06/06.
Me gustaria que saliese primero la 04, luego la 06 y finalmente la de julio.
Gracias
  #8 (permalink)  
Antiguo 27/05/2008, 17:37
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: Consulta de data SQL

Si te las ordena:
01/07
04/06
06/06

Entonces no te las está tomando como DATE sino como VARCHAR.
¿Podrías poner el texto de la sentencia en SQL donde ahces la consulta?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 27/05/2008, 17:49
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta de data SQL

Si, aquí lo tienes:

$sql = "SELECT id, poblacio, descripcio, horari, lloc, organitza, DATE_FORMAT(dia, '%d/%m/%Y') AS dia FROM trobades WHERE dia > CURDATE() ORDER BY dia";

En la base de datos el tipo dia sale DATE.

Gracias por tu ayuda

Última edición por xavi853; 27/05/2008 a las 18:07
  #10 (permalink)  
Antiguo 27/05/2008, 18:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
Respuesta: Consulta de data SQL1

Muchas gracias gnzsoloyo por tu aportación de que no me lo cogia como DATE sino como VARCHAR.
He descubierto que si haces un DATE_FORMAT el tipo DATE se convierte en VARCHAR, o eso he deducido, asi que he hecho la siguiente modificacion en la consulta SQL y ha funcionado:
$sql = "SELECT id, poblacio, descripcio, horari, lloc, organitza, DATE_FORMAT(dia, '%d/%m/%Y') AS dia_trobada FROM trobades WHERE dia > CURDATE() ORDER BY dia";
Cuando hago el DATE_FORMAT guardo la columna con otro nombre y lo ordeno por el campo dia que no cambia de formato y sigue siendo DATE.

Gracias por ayudarme!
Saludos!
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 16:52.