Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/07/2011, 07:44
Avatar de gnzsoloyo
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: Cómo convertir formato de fecha en mysql

Cita:
Iniciado por Jibril Ver Mensaje
Buenas trabajo con php y mysql. Tengo un campo Fecha que mediante un javascript despliega un calendario donde el usuario selecciona la fecha. el problema es el formato, ya que lo almacena Año Mes Día y necesito es formato Día Mes Año. El javascript puedo modificarlo para que tenga este formato pero al enviar el formulario se inserta en ese campo de mi tabla en mi base de datos el valor 0000-00-00. Cómo puedo hacer para guardar una fecha en formato DIA MES AÑO en mi tabla, es decir, convertirla al formato mysql y que cuando se vaya a consultar la fecha almacenada me la devuelva en formato DIAS MES AÑO.
Las fechas deben guardarse en las tablas en el formato estandar, siempre. Guardarlas como dd/mm/aaaa implica que se guarden como cadenas de texto y no como fechas, lo que luego lo único que hacen es traerte problemas en las consultas, sea al ordenarlas cronológicamente, o al tener que buscar ciertas fechas, ya que el SQL las interpretará como cadenas y generará errores de interpretación.
Nunca, jamás guardes una fecha o una hora como cadenas de texto. Es un error que te dará dolores de cabeza tarde o temprano y te obligará a migrar de nuevo el formato para resolverlo.
Si lo que quieres es obtener la fecha luego en un formato determinado, eso se hace en la misma consulta a la base, como ya te han dicho. Simplemente se usa la función de DATE_FORMAT() de MySQL:
Código MySQL:
Ver original
  1. SELECT DATE_FORMAT(campoFecha, '%d/%m/%Y') fecha
  2. FROM tabla;

Manual de Referencia de MySQL::12.5. Funciones de Fecha y Hora

Cada cosa tiene su forma de hacerse mejor. Algunas veces es en PHP, otras en SQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/07/2011 a las 07:49