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

Mostrar fecha según el formato

Estas en el tema de Mostrar fecha según el formato en el foro de Mysql en Foros del Web. Quiero mostrar fecha así 31-11-2017 día/mes/año Este es mi código que no me funciona. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT DATE_FORMAT ( lote.fechaVencimiento , ...
  #1 (permalink)  
Antiguo 04/05/2015, 11:30
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Mostrar fecha según el formato

Quiero mostrar fecha así 31-11-2017 día/mes/año

Este es mi código que no me funciona.

Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(lote.fechaVencimiento, '%d/%m/%Y'), lote.fechaVencimiento
  2. FROM medicamento
  3. INNER JOIN lote ON lote.id_med=medicamento.id_med
  4. WHERE CONCAT(lote.fechaVencimiento) LIKE '%"+valor+"%'

Pero no logro Sacar el formato de fecha Me sigue saliendo igual 2017-11-01
__________________
Muy Feliz
  #2 (permalink)  
Antiguo 04/05/2015, 11:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Mostrar fecha según el formato

En primer lugar: Un campo DATE o DATETIME es un campo que contiene magnitudes, y no cadenas decaracteres por lo que no aplica usar LIKE.
Una fecha puede ser igual, mayor o menor, pero no existe el "parecido a".
¿Se entiende?
Si quieres comprarar una fecha dada que ingresa como cadena, con un campo DATE, lo que corresponde es usar el formato con STR_TO_DATE(), o bien darle el formato correcto y que MySQL haga la conversión implicita:
Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(lote.fechaVencimiento, '%d/%m/%Y'), lote.fechaVencimiento
  2. FROM medicamento INNER JOIN lote ON lote.id_med=medicamento.id_med
  3. WHERE DATE(lote.fechaVencimiento) = '2017-11-30'
Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(lote.fechaVencimiento, '%d/%m/%Y'), lote.fechaVencimiento
  2. FROM medicamento INNER JOIN lote ON lote.id_med=medicamento.id_med
  3. WHERE DATE(lote.fechaVencimiento) = STR_TO_DATE('30/11/2017', '%d/%m/%Y');


Por c,ierto: No existe el 31 de Noviembre...
__________________
¿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 04/05/2015, 11:51
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Mostrar fecha según el formato

Gracias gnzsoloyo,
El problema que tengo es, No me obedece mi formato '%d/%m/%Y'
Quiero que imprima día/mes/año

Y me sigue saliendo año/mes /dia
__________________
Muy Feliz
  #4 (permalink)  
Antiguo 04/05/2015, 12:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Mostrar fecha según el formato

¿Qué tipo de dato tiene esa columna de la tabla? ¿DATE o DATETIME?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 04/05/2015, 12:28
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años, 6 meses
Puntos: 3
Respuesta: Mostrar fecha según el formato

Contiene DATE
__________________
Muy Feliz
  #6 (permalink)  
Antiguo 04/05/2015, 12:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Mostrar fecha según el formato

¿TE queda claro que estás obteniendo en la consutla dos columnas, la primera formateada DD/MM/AAAA y la otra AAAA-MM-DD, no?

Una tiene este titulo: "FORMAT(lote.fechaVencimiento, '%d/%m/%Y')"

y la otra "fechaVencimiento"

Aquí tendrías una sola:

Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(lote.fechaVencimiento, '%d/%m/%Y') fechaVencimiento
  2. FROM medicamento INNER JOIN lote ON lote.id_med=medicamento.id_med
  3. WHERE DATE(lote.fechaVencimiento) = STR_TO_DATE('30/11/2017', '%d/%m/%Y');
__________________
¿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: fecha, formato, según, 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 21:25.