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

Duda con Between

Estas en el tema de Duda con Between en el foro de Mysql en Foros del Web. Sé que es una duda absurda, pero tengo que hacer un between de varías fechas y no consigo que me funcione. La sql es : ...
  #1 (permalink)  
Antiguo 16/05/2012, 11:05
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Duda con Between

Sé que es una duda absurda, pero tengo que hacer un between de varías fechas y no consigo que me funcione.

La sql es :

Cita:
SELECT * FROM Usuarios WHERE FECHA_CREACION BETWEEN ('17/04/2004' AND '18/04/2004') OR BETWEEN ('08/05/2012' AND '11/05/2012')
Me salta un error en la sintaxis.

He probado con BETWEEN ( ) OR ( )
También con (BETWEEN ( ) ) OR ( BETWEEN ( ) )

¿Alguien me puede echar una mano?

Muchas gracias ;)
__________________
Aprendiendo un poco de Java :D
  #2 (permalink)  
Antiguo 16/05/2012, 12:10
 
Fecha de Ingreso: junio-2011
Mensajes: 4
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Duda con Between

PRUEBA CON:

SELECT * FROM Usuarios WHERE (FECHA_CREACION BETWEEN '17/04/2004' AND '18/04/2004') OR (FECHA_CREACION BETWEEN '08/05/2012' AND '11/05/2012')
  #3 (permalink)  
Antiguo 16/05/2012, 12:41
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: Duda con Between

La sintaxs correcta es la que te está dado gfilippini.
Pero de todos modos, no funcionará correctamente si el campo no s un DATE, y si lo es, las fechas están mal escritas.
Si el campo es un VARCHAR tampoco funcionará, porque lo evaluará alfabéticamente.

¿Qué tipo de datos estás usando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 16/05/2012, 12:48
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Duda con Between

Es un tipo Varchar porque es una tabla que ya estaba creada. Con la sintaxis que ha puesto gfilippini me funciona correctamente.

Saliendo de ese ejemplo, ponga lo que ponga no me funciona.

Un saludo y gracias a ambos.
__________________
Aprendiendo un poco de Java :D
  #5 (permalink)  
Antiguo 16/05/2012, 12:50
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: Duda con Between

Si es VARCHAR et va a evaluar las fechas como cadenas de texto.
Eso va a funcionar mal. Los datos devueltos van a ser incorrectos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 16/05/2012, 12:51
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Duda con Between

¿Si?

Pues la salida está bien, qué raro. ¿Cambio mejor a SmallDateTime, no?
__________________
Aprendiendo un poco de Java :D
  #7 (permalink)  
Antiguo 16/05/2012, 13:09
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: Duda con Between

Si lo evaluás alfabéticamente, el 20/12/1746 está entre el 01/10/2011 y el 31/07/2012.
¿Te parece que tiene sentido?

SMALLDATETIME no es un tipo de dato de MySQL. El tipo es DATE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 16/05/2012 a las 13:21
  #8 (permalink)  
Antiguo 16/05/2012, 13:19
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Duda con Between

Correcto, tenías razón.

Soy un jodido inútil en este tipo de campo...

Mil gracias de nuevo.
__________________
Aprendiendo un poco de Java :D
  #9 (permalink)  
Antiguo 16/05/2012, 13:21
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: Duda con Between

No problem. Es un error muy común entre los principiantes...
__________________
¿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: select, 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 23:23.