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

Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql)

Estas en el tema de Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql) en el foro de Mysql en Foros del Web. Hola a tod@s!!!!! Bueno les explico mi actual problea: Estoy haciendo un sistema en el cual requieren una busqueda por fechas, teniendo en cuenta que ...
  #1 (permalink)  
Antiguo 25/06/2011, 16:19
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql)

Hola a tod@s!!!!!

Bueno les explico mi actual problea:

Estoy haciendo un sistema en el cual requieren una busqueda por fechas, teniendo en cuenta que el campo de fecha de mi tabla sea de tipo DATE no hay ningun problema pero........ resulta que no es asi si no que es de tipo DATETIME, el problema en si es el siguiente:

Como puedo comparar el campo de mi tabla que es de tipo DATETIME con una fecha que el usuario proporciona con el formato Y-m-d, este dato se recibe desde PHP. Ya he intentado y e buscado informacion, pero no doy con el resultado ya que mi consulta no me devuelve NADA!!!

Les dejo la consulta:

Si realizo una consulta sencilla, hacie el campo tipo DATETIME con el DATE si me arroja solo la fecha sin las horas,minu y seg.

Código MySQL:
Ver original
  1. select DATE(SAL_Date_Sales) from sales;

Pero si lo hago asi no me arroja nada:

Código MySQL:
Ver original
  1. SELECT DATE(SAL_Date_Sales) FROM sales WHERE DATE(SAL_Date_Sales) BETWEEN DAY(2011-05-09) AND DAY(2011-05-05);


Espero me aya explicado bien .

De antemano les agradesco la ayuda brindada!!!

Saludos.
__________________
Solo se... que no se nada!!! 0_o
  #2 (permalink)  
Antiguo 25/06/2011, 16:33
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: Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql)

1) Estás usando mal el BETWEEN, el primer parámetro debe ser menor que el mayor.
2) Si estás comparando un DATE (que devuenve una fecha) no tiene sentido que lo compares contra un DAY (que devuelve el número del día en el mes).
3) El contenido de la función DAY no es en tu ejemplo una fecha, sino una operación aritmética (la resta). Para transformarlo en una fecha debes ponerlo entre apòstrofes (como cadena de texto) y dejar que MySQL haga la conversión, en tanto repete el estandar "aaaa-mm-dd".
O sea: Trata de escribir bien y usar funciones compatibles.
Código MySQL:
Ver original
  1.     DATE(SAL_Date_Sales)
  2.     sales
  3.     DATE(SAL_Date_Sales) BETWEEN '2011-05-05' AND '2011-05-09';
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/06/2011, 16:43
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql)

Hola gnzsoloyo!!!

Gracias por tu respuesta.

Acabo de probar la consulta y si funciono!!! no pense que fuese tam simple .

Entonces el campo que debo tanrsformar en date es el campo de mi tabla no la que el usuario introduce?????

En que momento es valido usar las funciones DAY(), MONTH() y YEAR() de mysql solo cuando el campo de la tablas es DATE??????????

Saludos y gracias nuevamente.
__________________
Solo se... que no se nada!!! 0_o
  #4 (permalink)  
Antiguo 25/06/2011, 17:22
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: Compara variable de fecha de php(Y-m-d) con campo DATETIME de mysql)

No. Pe parece que no estás entendiendo el uso de esas funciones. Fijate bien en el manual:
MONTH(fecha): Devuelve el número del mes de una fecha dada.
YEAR(fecha): Devuelve el número del año de una fecha dada.
DAY(fecha): Devuelve el número de día una fecha dada.

A los que tienes que agregar:
HOUR(fecha_hora|hora): Devuelve la hora de una fecha_hora|hora dada.
MINUTE(fecha_hora|hora): Devuelve los minutos de una hora en una fecha_hora|hora dada.
SECOND(fecha_hora|hora): Devuelve los segundos del minuto en una fecha_hora|hora dada.

En cualquiera caso del primer grupo, el dato debe ser DATE, DATETIME, TIMESTAMP o UNIXTIME.
En el segundo grupo deben ser TIME, DATETIME, TIMESTAMP o UNIXTIME.

Por otro lado, las fechas, horas y fechahoras deben siempre ser almacenadas en los tipos de columna específicos: DATE, TIME, DATETIME, TIMESTAMP o UNIXTIME, según lo que sea necesario conforme el análisis del sistema a implementar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: datetime, fecha, variables, campos
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 01:57.