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

replace mysql

Estas en el tema de replace mysql en el foro de Mysql en Foros del Web. una consulta, estoy intentando de usar esta función pero no me funciona como yo quiero, obviamente algo estoy haciendo mal, me pueden ayudar? La idea ...
  #1 (permalink)  
Antiguo 05/03/2012, 07:03
 
Fecha de Ingreso: febrero-2012
Mensajes: 40
Antigüedad: 12 años, 2 meses
Puntos: 0
replace mysql

una consulta, estoy intentando de usar esta función pero no me funciona como yo quiero, obviamente algo estoy haciendo mal, me pueden ayudar?

La idea de la consulta es que me busque entre un rango de fechas y aquellas que se salgan del rango me la reemplace por otra fecha

Código MySQL:
Ver original
  1. SELECT tabla.fecha_inicio, tabla.fecha_termino FROM tabla
  2. WHERE (tabla.fecha_inicio >= '2012-02-01') AND (replace(tabla.fecha_termino, (tabla.fecha_termino <= '2012-02-29'), '2012-02-29') = True)

ejemplo:
la consulta sin where
id fecha_inicio fecha_termino
01 2012-02-01 2012-03-01
02 2012-02-19 2012-02-25

la consulta con where como debería
id fecha_inicio fecha_termino
01 2012-02-01 2012-02-29
02 2012-02-19 2012-02-25

resumiendo, es reemplazar todas las fechas mayores a febrero (es decir de marzo hacia adelante) por el 29 de febrero
  #2 (permalink)  
Antiguo 05/03/2012, 07:14
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: replace mysql

¿Que te las reemplace en la tabla de la base, o que te las reemplace en el resultado del SELECT?
Son dos cosas diferentes.
En el primer caso, tienes que hacer un UPDATE. En el segundo, puedes usar IF().
Código MySQL:
Ver original
  1.   fecha_inicio,
  2.   IF(fecha_termino <= '2012-02-29', '2012-02-29', fecha_termino ) fecha_termino
  3. FROM tabla
  4.     fecha_inicio >= '2012-02-01'
Lo que no puedes hacer es una sola consulta que haga ambas cosas al mismo tiempo.
__________________
¿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 05/03/2012, 07:21
 
Fecha de Ingreso: febrero-2012
Mensajes: 40
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: replace mysql

en el resultado del select solamente, ya que todo lo exportoa excel con un script que econtré acá.
  #4 (permalink)  
Antiguo 05/03/2012, 07:27
 
Fecha de Ingreso: febrero-2012
Mensajes: 40
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: replace mysql

la ejecuto pero aun me aparecen en la fecha de termino el mes de marzo..
  #5 (permalink)  
Antiguo 05/03/2012, 07:31
 
Fecha de Ingreso: febrero-2012
Mensajes: 40
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: replace mysql

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Que te las reemplace en la tabla de la base, o que te las reemplace en el resultado del SELECT?
Son dos cosas diferentes.
En el primer caso, tienes que hacer un UPDATE. En el segundo, puedes usar IF().
Código MySQL:
Ver original
  1.   fecha_inicio,
  2.   IF(fecha_termino >= '2012-02-29', '2012-02-29', fecha_termino ) fecha_termino
  3. FROM tabla
  4.     fecha_inicio >= '2012-02-01'
Lo que no puedes hacer es una sola consulta que haga ambas cosas al mismo tiempo.
listo ahora si, nuevamente error mio

IF(fecha_termino >= '2012-02-29', '2012-02-29', fecha_termino ) fecha_termino

muchas gracias.

Etiquetas: replace, select, tabla
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 18:20.