Foros del Web » Programando para Internet » PHP »

Formato de fechas en MySQL (INSERT y SELECT)

Estas en el tema de Formato de fechas en MySQL (INSERT y SELECT) en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/02/2010, 15:44
Avatar de mleonardom  
Fecha de Ingreso: marzo-2009
Mensajes: 81
Antigüedad: 8 años, 10 meses
Puntos: 5
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!
__________________
No hay lugar como 127.0.0.1
  #2 (permalink)  
Antiguo 27/07/2013, 17:36
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 4 años, 9 meses
Puntos: 0
Respuesta: Formato de fechas en MySQL (INSERT y SELECT)

Esto le vendrá muy bien a mas de uno, como a un menda, gracias

Última edición por joselegolas; 27/07/2013 a las 17:54
  #3 (permalink)  
Antiguo 21/12/2017, 12:10
 
Fecha de Ingreso: abril-2011
Mensajes: 8
Antigüedad: 6 años, 9 meses
Puntos: 0
Respuesta: Formato de fechas en MySQL (INSERT y SELECT)

Gracias a ti, pude resolver ese mismo problema.



La zona horaria es GMT -6. Ahora son las 17:49.