Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2010, 15:44
mleonardom
Invitado
 
Mensajes: n/a
Puntos:
Formato de fechas en MySQL (INSERT y SELECT)

Hola todos, tube un porblema relacionado con el formato de las fechas en mysql que consistia basicamente en que el formato con el que son almacenadas en mysql es el <USA> (YYYY-MM-DD), y el front de mi aplicativo desarrollado para Europa, obviamente necesitaba mostrales y capturarles en formato europeo <EUR> (DD-MM-YYYY).
Como primera opcion decidí googlear un rato me di cuenta que las soluciones propuestas eran en codigo php (me falto especificar que estaba trabajando actionscript 3) y me parecia demaciado tedioso pasar estos scripts a as3 y decidi entonces buscar la manera de capturar y editar/insertar estos datos directamente desde mysql, pero google no supo darme respuesta inmediata (como suele pasar con google), asi que decidi no perder mas tiempo y solucionar estos problemas por mi mismo y los resultados casi inmediatos fueron sorprendentemente tribiales (fue mas el tiempo gastado buscando en google).

Por esto decidí publicar las consultas SQL que use con el fin de futura referencia de cualquiera a quien se le presente este problema.

EN LOS SELECT
Código SQL:
Ver original
  1. SELECT DATE_FORMAT(`fecha`,'%d-%m-%Y') FROM `my_tabla`; -- Esta es la primera opcion
  2. -- O si lo prefieren:
  3. SELECT  DATE_FORMAT( `fecha` , GET_FORMAT( DATE, 'EUR' ) ) FROM `my_tabla`;
Esta ultima cambia la fecha almacenada en formato europeo, PERO EN FORMATO EUROPEO DE MYSQL, es decir en DD.MM.YYYY, asi que la primera opcion es la mas usable si necesitas guiones o slash en vez de puntos (suele pasar ).

EN LOS INSERT
Lo que haremos es trabajar lo que hemos capturado como un String, no como una fecha y la parceamos con SQL de la siguiente manera:
Código SQL:
Ver original
  1. INSERT INTO `my_tabla`(`fecha`) VALUES(  STR_TO_DATE( '01-09-1986', '%d-%m-%Y' ) );
Esto convertirá la fecha (cadena de caracteres) '01-09-1986' a la fecha '1986-09-01'.

Espero que esto les sirva de algo.

Saludos!