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

ayuda con fecha en mysql

Estas en el tema de ayuda con fecha en mysql en el foro de Bases de Datos General en Foros del Web. Muy buenas, a ver si alguien me puede ayudar, tengo dos campos en una tabla, los dos como varchar: temp_ds_diamesini (Inicio de la temporada), temp_ds_diamesfin(Fin ...
  #1 (permalink)  
Antiguo 17/01/2005, 06:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 17
Antigüedad: 19 años, 11 meses
Puntos: 0
ayuda con fecha en mysql

Muy buenas, a ver si alguien me puede ayudar, tengo dos campos en una tabla, los dos como varchar: temp_ds_diamesini (Inicio de la temporada), temp_ds_diamesfin(Fin de latemporada). Estos dos campos son para meter el dia y el mes (dd-mm) y a cada uno ed estos intervalos le corresponde un codigo de temporada. El problema me surge a la hora de hacer la select en MySql, quisiera una select que me buscara el codigo de temporada que le corresponde al dia de hoy, pero no soy capaz de convertir esos datos a fechas para poder hacer la select. He intentado hacer algo tal que asi:


SELECT *
FROM ES_MAN_TEMPTD
WHERE DATE_FORMAT(temp_ds_diamesini, 'dd-mm') >= '17-01'
AND DATE_FORMAT(temp_ds_diamesfin, 'dd-mm') <= '17-01'

pero no hay manera, porquer los datos que me devuelve me dice que son null.

Alguna idea??
Gracias por adelantado, a ver si hay suerte!

Última edición por serpi_ente; 17/01/2005 a las 07:23
  #2 (permalink)  
Antiguo 17/01/2005, 09:42
Avatar de orchabel  
Fecha de Ingreso: marzo-2002
Ubicación: Hundido en un rincón...
Mensajes: 401
Antigüedad: 22 años, 8 meses
Puntos: 1
El problema con tu date_format, es que esa función solo funciona con campos que sean de tipo date, lo que necesitas es convertir ese dato a date. Es mejor que uses la funcion TIMESTAMPDIFF, para averiguar cual es la diferencia entre estas dos fechas. Está un poco complicado pero intenta con esto

Código:
FROM ES_MAN_TEMPTD

WHERE TIMESTAMPDIFF(DAY,STR_TO_DATE(temp_ds_diamesini,'%m-%d'),STR_TO_DATE('17-01','%m-%d')) < 0)

AND 

TIMESTAMPDIFF(DAY,STR_TO_DATE(temp_ds_diamesfin,'%m-%d'),STR_TO_DATE('17-01','%m-%d')) > 0) 
saludos!
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"

Última edición por orchabel; 17/01/2005 a las 09:45
  #3 (permalink)  
Antiguo 17/01/2005, 10:03
 
Fecha de Ingreso: diciembre-2004
Mensajes: 17
Antigüedad: 19 años, 11 meses
Puntos: 0
buenas! pues gracias por responder, pero sigue sin funcionarme, el problema es que creo que el mysql no me reconoce la funcion STR_TO_DATE asi como tampoco la TIMESTAMPDIFF. Uso la version de MySql4.1.8 y no hay manera...
  #4 (permalink)  
Antiguo 17/01/2005, 10:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 17
Antigüedad: 19 años, 11 meses
Puntos: 0
ok, creo que lo he conseguido, va bastante bien, por si a alguien le interesa lo he montado asi:

SELECT *
FROM ES_MAN_TEMPTD
WHERE CONCAT(SUBSTR(ES_MAN_TEMPTD.temp_ds_diamesini,4,5) ,"-",SUBSTR(ES_MAN_TEMPTD.temp_ds_diamesini,1,2))<=da te_format(NOW(),'%m-%d')
AND CONCAT(SUBSTR(ES_MAN_TEMPTD.temp_ds_diamesfin,4,5) ,"-",SUBSTR(ES_MAN_TEMPTD.temp_ds_diamesfin,1,2))>=da te_format(NOW(),'%m-%d').

Gracias orchaer por el interes. Nos vemos!
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:14.