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

[SOLUCIONADO] CONCAT y DATE_FORMAT

Estas en el tema de CONCAT y DATE_FORMAT en el foro de Mysql en Foros del Web. hola gente, estoy intentando hacer un select de este campo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CONCAT ( DATE_FORMAT ( muros.fecha_alta , 'Y-m-d' ) , ...
  #1 (permalink)  
Antiguo 21/01/2014, 14:18
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
CONCAT y DATE_FORMAT

hola gente, estoy intentando hacer un select de este campo:
Código MySQL:
Ver original
  1. CONCAT(DATE_FORMAT(muros.fecha_alta,'Y-m-d'),' ',franjas_horarias.inicio)

donde fecha_alta es datetime y inicio es time

y me devuelve cosas como estas:
Cita:
Y-m-d 22:00:00
que es lo que estoy haciendo mal?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 21/01/2014, 14:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: CONCAT y DATE_FORMAT

prueba con algo así. Yo no lo he probado. Observa que primero saco la fecha del datetime mediante DATE. Luego concateno con el time de inicio y al hacerlo lo convierto en cadena. Luego paso la cadena a fecha hora mediante otra función. Hay más formas y claro, si utilizas DATE_FORMAT, tienes que usar las comillas y el signo de % para mostrar los datos.
Código MySQL:
Ver original
  1. SELECT STR_TO_DATE (CONCAT(DATE(muros.fecha_alta),' ',franjas_horarias.inicio), '%Y-%m-%d %h:%i:%s') fecha FROM ...
  #3 (permalink)  
Antiguo 21/01/2014, 14:37
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: CONCAT y DATE_FORMAT

Hola NSD...

Mucho ojo, en los formatos de fecha no es lo mismo poner 'Y-m-d' a poner '%Y-%m-%d'

Código MySQL:
Ver original
  1. mysql> SELECT now(),
  2.     ->        date_format(now(), 'Y-m-d') tu_formato,
  3.     ->        date_format(now(), '%Y-%m-%d') formato_correcto;
  4. +---------------------+------------+-------------------+
  5. | now()               | tu_formato | formato_ccirrecto |
  6. +---------------------+------------+-------------------+
  7. | 2014-01-21 14:41:26 | Y-m-d      | 2014-01-21        |
  8. +---------------------+------------+-------------------+
  9. 1 row in set (0.00 sec)

Saludos
Leo
  #4 (permalink)  
Antiguo 21/01/2014, 14:38
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: CONCAT y DATE_FORMAT

Ups, se me adelantó jurena con la respuesta...



Saludos
Leo
  #5 (permalink)  
Antiguo 21/01/2014, 14:55
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: CONCAT y DATE_FORMAT

Gracias a los dos, en efecto estaba usando mal el formato, como dice leonardo me funciono. tambien voy a usar la funcion STR_TO_DATE que sugiere jurena que viene genial para lo que intento hacer.

Cita:
-> date_format(now(), '%Y-%m-%d') formato_correcto;
+---------------------+------------+-------------------+
| now() | tu_formato | formato_ccirrecto |
formato_correcto vs formato_ccirrecto? WTF? jaja gracias a los dos. problema solucionado
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #6 (permalink)  
Antiguo 22/01/2014, 02:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: CONCAT y DATE_FORMAT

Si es para presentación, te bastará con usar date_format y concat con el campo time. Pero si tienes que hacer operaciones de fecha hora con lo que de ahí sale, sería recomendable hacer después la conversión o casting de la cadena a fecha antes de operar con ella.
  #7 (permalink)  
Antiguo 23/01/2014, 15:54
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 11 años, 11 meses
Puntos: 320
Respuesta: CONCAT y DATE_FORMAT

Si, de hecho me fue impresindible, ya que de una tabla tomo un rango de times, que es el rango de horas en que se muestra una publicidad, y de otra tabla saco la fechas de cuando va a estar vigente el lugar de la publicidad, entonces tomo la fecha de vigencia del contenedor, la concateno con la hora de la publicidad y ahi valido que este dentro de un rango especifico y mas operaciones entre fechas, mucho mejor hacerlo con un datetime que con un string
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: campo, concat, select
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:08.