Autor Tema: Cambiar el formato de fecha mediante una consulta SQL desde PHP  (Leído 3257 veces)

Tae

  • Visitante
Saludos a todos:

Verán, tengo un campo en MySQL cuyo tipo de datos es datetime, por tanto almacena fechas con el formato año-mes-día hora:minutos:segundos, así que al realizar la siguiente consulta:

Código: [Seleccionar]
SELECT autor,cuerpo,fecha FROM preguntas WHERE parcela=' . $numero . ' ORDER BY fecha ASC'
obviamente muestra las fechas de dicho modo. He intentado cambiar esto valiendome sólo de SQL, dejando la consulta de la siguiente forma:

Código: [Seleccionar]
SELECT autor,cuerpo,DATE_FORMAT("fecha","%d/%m/%Y %T") FROM preguntas WHERE parcela=' . $numero . ' ORDER BY fecha ASC'
pero a la hora de mostrar los datos de la tabla, la fecha simplemente no aparece, incluso si cambio el formato de la fecha una vez almacenada en un array:

Código: [Seleccionar]
$row['DATE_FORMAT("fecha","%d/%m/%Y %T")']
He ido intentado distintas cosas, como invertir las comillas

Código: [Seleccionar]
DATE_FORMAT('fecha','%d/%m/%Y %T')
o quitarlas

Código: [Seleccionar]
DATE_FORMAT(fecha,'%d/%m/%Y %T')
pero todo sigue igual, y lo raro es que viendo la documentación de MySQL y varios resultados en Google, da la idea de que lo estoy haciendo bien. Entonces ¿qué se me ha pasado? ¿Puede alguien ayudarme?

Gracias de antemano.

(He visitado la web desde que se llamaba Los primeros pasos de un hacker, y fui usuaria del foro por un tiempo breve cuando ya era Hispabyte, pero mi carrera, que no es informática, me alejó un poco de esta, que es mi afición. Espero que no vuelva a sucederme y que en un tiempo no muy lejano pase de formular preguntas a responderlas :)

Desconectado HQH

  • Administrator
  • Miembro Imprescindible
  • *****
  • Mensajes: 1.856
    • Ver Perfil
Re: Cambiar el formato de fecha mediante una consulta SQL desde PHP
« Respuesta #1 en: Junio 09, 2009, 07:59:10 am »
Hola, te lo digo a ciegas porque estoy en el trabajo y no tengo nada para probar.

En el ejemplo de la documentacion, se ve que donde pones fecha, suele haber entre comillas unas fechas (Ejemplo '2004-02-05') por lo cual parece que las comillas son para literales de fechas, por lo cual no deberia llevar.

Podrias intentar algo tipo
Código: [Seleccionar]
SELECT autor,cuerpo,fecha,DATE_FORMAT(fecha,"%d/%m/%Y %T") FROM preguntas WHERE parcela=' . $numero . ' ORDER BY fecha ASC'

A ver si asi te lo coje. Un saludo, ojala haya suerte y sea de ayuda.

Tae

  • Visitante
Re: Cambiar el formato de fecha mediante una consulta SQL desde PHP
« Respuesta #2 en: Junio 09, 2009, 07:25:22 pm »
Gracias HQH, pero esa fue una de las cosas que intenté y el resultado sigue siendo el mismo: el script imprime todos los campos que solicito a la base de datos menos la fecha cuando intento darle formato con SQL. Dejo el código completo, tal vez haya algo más por ahí...

Código: [Seleccionar]
$questions=mysql_query('SELECT autor,cuerpo,DATE_FORMAT(fecha,"%d/%m/%Y %T") FROM preguntas WHERE parcela=' . $numero . ' ORDER BY fecha ASC', $connectTo)
        or exit('Error al consultar la base de datos. ' . $webmaster_error);
    echo '<dl>';
    while ($row=mysql_fetch_array($questions)) {
        echo '<dt>Por ' . $row['autor'] . ' el ' . $row['fecha'] . '</dt>'
           . '<dd>' . $row['cuerpo'] . '</dd>';
    }

Desconectado svoboda

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 453
    • Ver Perfil
Re: Cambiar el formato de fecha mediante una consulta SQL desde PHP
« Respuesta #3 en: Junio 09, 2009, 08:56:17 pm »
Mi primera sugerencia iba a ser la de las comillas, pero viendo que ya lo has probado, la siguiente sería que le des un nombre en la consulta SQL a la columna a la que le aplicas el DATE_FORMAT y luego la intentes sacar por ese nombre, es decir:
Código: [Seleccionar]
'SELECT autor,cuerpo,DATE_FORMAT(fecha,"%d/%m/%Y %T") modif FROM preguntas WHERE parcela=' . $numero . ' ORDER BY fecha ASC'
Código: [Seleccionar]
$row['modif']
Prueba eso a ver si va. Y por poder decirte algo más, ¿Quieres hacerlo con SQL solo?, ¿Has probado hacerlo con PHP?

Tae

  • Visitante
Re: Cambiar el formato de fecha mediante una consulta SQL desde PHP
« Respuesta #4 en: Junio 09, 2009, 09:08:14 pm »
Gracias svoboda, ha funcionado :D Iba a intentarlo con PHP, pero la duda de por qué SQL no funcionaba me estaba quitando el sueño. Saludos.