Foros del Web » Programando para Internet » PHP »

consulta fecha

Estas en el tema de consulta fecha en el foro de PHP en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original "SELECT usuari_compres, article, quantitat, preu, pagament, UNIX_TIMESTAMP(datainicial) AS datainicial2, DATEDIFF( 'dd', CURDATE( ), UNIX_TIMESTAMP(datainicial)) AS diferencia FROM compres WHERE ...
  #1 (permalink)  
Antiguo 02/01/2012, 05:11
 
Fecha de Ingreso: octubre-2011
Mensajes: 18
Antigüedad: 12 años, 6 meses
Puntos: 0
consulta fecha

Código PHP:
Ver original
  1. "SELECT usuari_compres, article, quantitat, preu, pagament, UNIX_TIMESTAMP(datainicial) AS datainicial2, DATEDIFF( 'dd', CURDATE( ), UNIX_TIMESTAMP(datainicial)) AS diferencia FROM compres WHERE pagament = 'si' And diferencia BETWEEN 1 and 30";


Alguien me puede decir si hay algun error en esta consulta?
Gracias
  #2 (permalink)  
Antiguo 02/01/2012, 06:09
Avatar de efedefernan  
Fecha de Ingreso: diciembre-2007
Ubicación: Cantabria
Mensajes: 91
Antigüedad: 16 años, 4 meses
Puntos: 11
Respuesta: consulta fecha

creo que el problema lo stienes al llamar a la funcion
DATEDIFF( 'dd', CURDATE( ), UNIX_TIMESTAMP(datainicial))

tal y como lo tienes escrito estas pasandole 3 parametros a la funcion en lugar de dos que es lo que espera.
El problema está en que lo que necesitas poner con 'dd' y el CURDATE() no lo pasas bien. y la funcion cree que son dos parametros al tener una coma entre los dos.

Un saludo.
  #3 (permalink)  
Antiguo 02/01/2012, 06:24
 
Fecha de Ingreso: octubre-2011
Mensajes: 18
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: consulta fecha

Entonces segun tu, como tendria que escribir el datediff? Porque he estado busacando informacion sobre estas funciones pero no me aclaro mucho.
Gracias
  #4 (permalink)  
Antiguo 02/01/2012, 06:32
 
Fecha de Ingreso: octubre-2011
Mensajes: 18
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: consulta fecha

Lo he escrito asi ahora y tampoco me funciona:

Código PHP:
Ver original
  1. mysql_query("SELECT usuari_compres, article, quantitat, preu, pagament, datainicial AS datainicial2, DATEDIFF(CURDATE( ), datainicial) AS datafinal2 FROM compres WHERE pagament = 'si' And datafinal2 BETWEEN 1 and 30");
  #5 (permalink)  
Antiguo 02/01/2012, 06:42
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 7 meses
Puntos: 140
Respuesta: consulta fecha

Según w3c, está bien como sentencia sql: http://www.w3schools.com/sql/func_datediff.asp

pero según mysql: http://dev.mysql.com/doc/refman/5.5/...ction_datediff

con poner las dos fechas con día como unidad mínima estaría bien (que es lo que te da CURDATE, pero no UNIX_TIMESTAMP (que también te da los segundos, o en su defecto, ceros). Además que el valor numérico que te da CURDATE no es comparable con el de UNIX_TIMESTAMP.

No tengo mucha idea, pero me quizá sería correcto lo siguiente:

DATEDIFF( UNIX_TIMESTAMP(), UNIX_TIMESTAMP(datainicial))
y poner el between final en segundos.

Saludos
  #6 (permalink)  
Antiguo 03/01/2012, 04:48
 
Fecha de Ingreso: octubre-2011
Mensajes: 18
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: consulta fecha

No funciona, alguien tiene idea de como hacer una consulta que solo salgan los registros que hayan sido insertados en el ultimo mes( campo: datafinal)
Lo agradeceria mucho si alguien me pudiera responder

Etiquetas: fecha
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 22:15.