Foros del Web » Programando para Internet » PHP »

Busqueda Like en una Fecha Mysql

Estas en el tema de Busqueda Like en una Fecha Mysql en el foro de PHP en Foros del Web. Hola a tod@s: Estoy intentando hacer una búsqueda con Like en un campo fecha en Mysql. Tengo una caja de texto donde se inserta la ...
  #1 (permalink)  
Antiguo 25/10/2006, 01:37
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Busqueda Like en una Fecha Mysql

Hola a tod@s:

Estoy intentando hacer una búsqueda con Like en un campo fecha en Mysql.

Tengo una caja de texto donde se inserta la cadena a buscar, el usuario puede introducir; 7-11 (buscar todas las fechas del día 7 del mes 11), 5-2006 (buscar todas las fechas del mes 5 del año 2006), etc... y todas las secuencias que se os ocurran.

Pero tengo el problema que en Mysql la fecha se guarda en este formato 2006-05-30 y cuando creo mi cadena select pues me formo un lío y no logro hacerlo bien.

¿alguna sugerencia?

Muchas gracias por todo.

Un saludo.
  #2 (permalink)  
Antiguo 25/10/2006, 03:27
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años
Puntos: 3
Tanto en mysql como en php puedes darle formato a la fecha, con date en php y con una mascara (busca formato fecha en sql en google) en mysql
  #3 (permalink)  
Antiguo 25/10/2006, 03:45
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias por responder,

Veras el problema no está en el formato, bueno sí... a ver me explico . Por poner un ejemplo. Si en la caja de texto el usuario inserta 6-10 la cadena se quedaría algo como esto:

Select * from tabla where fecha like '%6-10%'

y me mostraría fechas como : 2006-10-01,2006-10-02... y 2005-06-10, 2006-06-10...

y lo que pretendo que muestre es : 06/10/2001, 06/10/2002...

Y no sé como puedo insertar lo del formato con cadenas que no son realmente fechas, puesto 6-10 (el caso del ejemplo) no es una fecha.

Muchas gracias a todos

Un saludo.
  #4 (permalink)  
Antiguo 25/10/2006, 15:52
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
Lo conseguí, pongo la solución por si le sirve a alguien:

SELECT usuarios . *
FROM usuarios
INNER JOIN idiomas ON usuarios.idIdioma = idiomas.idIdioma
WHERE DATE_FORMAT( usuarios.fecha_alta, '%d/%m/%Y' ) LIKE "%01/07%"
  #5 (permalink)  
Antiguo 25/10/2006, 16:06
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Como indetificas que lo que quiere es el año el mes o el dia para la busqueda. Ya que por lo que veo le permites introducir cualquier tamaño de cadena. POr ejemplo para cosas del tipo, 17-2005, esta claro que es dia y año pero y los valores del 1 al 12 como distingue que es un mes o un dia. En fin no se me interesa mucho este tipo de busqueda ya que yo empleo la busqueda completa. Gracias de antemano.
  #6 (permalink)  
Antiguo 26/10/2006, 00:33
 
Fecha de Ingreso: febrero-2004
Mensajes: 157
Antigüedad: 20 años, 2 meses
Puntos: 0
No me complico, si coincide la cadena pues muestro resultado.

01/12 --> uno de diciembre de cualquier año
17/2006--> no aparecen resultados

Solo si la cadena coincide con alguna fecha.

Un saludo.
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 20:42.