PDA

Ver la Versión Completa : Formato de fechas en mysql


seduerey
13-07-2003, 22:29:25
He intentado hacer un insert usando el siguiente codigo

INSERT INTO albaran VALUES(null,3,8,8,DATE_FORMAT("13/6/2003","%e/%c/%x"),null,8," bnkbk ")

Pero parece ser que no es la forma más correcta.

Las fechas me llegan en ese formato, no hay forma de cambiarlo, pero si sabeis de alguna forma para introducirlo....

He probado con la funcion to_date del standard, pero parece que no la lleva, por desgracia, y me habia parecido que DATE_FORMAT era la más parecida.

¿Alguna idea?

brandolin
15-07-2003, 14:14:23
Proba en utilizar la funcion STRTODATE directamente en lugar de la de FormatDate.

Yo pensaba que no me iba a funcionar, pero, sorpresas.....

Gracias.

kayetano
16-07-2003, 18:33:04
Hola

A primera vista yo veo el seiguiente fallo, el tipo DATE de me MySQL es "año-mes-dia" separado por guiones,

Con lo que nos queda

INSERT INTO albaran VALUES(null,3,8,8,DATE_FORMAT("2003-13-6","%e/%c/%x"),null,8," bnkbk ")

roman
16-07-2003, 19:02:33
Posteado originalmente por kayetano
INSERT INTO albaran VALUES(null,3,8,8,DATE_FORMAT("2003-13-6","%e/%c/%x"),null,8," bnkbk ")

El problema es que seduerey indica que las fechas le llegan en ese formato y no hay manera de cambiarlo.

Me parece que no queda otra que concat y substring para ponerla en el orden correcto.

// Saludos

seduerey
16-07-2003, 23:29:58
Gracias, al final he tenido que hacer eso.... transformarlas a pelo, que se le va a hacer....


Gracias por todo

mapachetec
02-07-2007, 03:51:05
Aqui va mi contribución, el problema es que necesitaba pasar la fecha actual del servidor a una consulta, pero el problema que tenia es que al pasarlo a cadena, delphi cambiaba el formato a dia-mes-anio siendo que yo lo necesitaba en anio-mes-dia. Para no hacer mas largo el cuento, lo que hice fue manejar en mysql la fecha como cadena y no como fecha, como se hace esto? :confused: de la siguiente manera:


SELECT CONCAT_WS( "-", SUBSTRING( CURRENT_DATE( ) , 1, 4 ) , SUBSTRING( CURRENT_DATE( ) , 6, 2 ) , SUBSTRING( CURRENT_DATE( ) , 9, 2 ) ) AS fecha_actual
FROM nombre_table

Entonces, cuando obtenemos el dato mediante delphi, ya que se trata de una cadena y no de una fecha pues lo deja como esta :)

Espero sea de utilidad, hasta pronto.

como diria mi estimado Rasmus, show me the code! :cool:

Lepe
02-07-2007, 09:53:31
Ya que es la fecha del servidor, ¿no se puede hacer esto?

INSERT INTO albaran VALUES(null,3,8,8,GET_DATE(),null,8," bnkbk ")

get_date es una función de mysql (si no me he equivocado en el nombre), lo interpretará en tiempo de ejecución.

Para evitar el formato de fecha mm/dd ó dd/mm es mejor usar parámetros, aunque en este caso, no hace ni falta.

Si creas el campo de tipo String, para almacenar la fecha como texto, no esperes que las búsquedas sean rápidas o se ordenen como esperas, ésta, es la ordenación que obtendrás por texto:
01/01/2007
01/01/2008
02/01/2007

Ésta otra, cuando el campo es de tipo fecha:
01/01/2007
02/01/2007
01/01/2008

Saludos