Totalmente de acuerdo con jurena en cuanto a la forma de guardar la fecha. El problema que estás planteando no se resuelve por el
almacenamiento sino por la
representación, y para ello MySQL tiene funciones para ello y modos de almacenamiento específico.
El mejor formato posible es el DATETIME, porque ese tipo de campo contiene toda la información necesaria para generar el string que estas requiriendo, simplemente debes considerar la configuración de zonas horarias y las funciones de conversión y representación de fechas.
Mira el manual de referencia:
-
5.9.8. Soporte de zonas horarias en el servidor MySQL
-
12.5. Funciones de fecha y hora
En este último caso presta atención a las funciones
UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP(), CURRENT_TIMESTAMP(), CURRENT_TIME(), CURRENT_DATE(), y FROM_UNIXTIME() , CONVERT_TZ(), y en cuanto al string que necesitas, especial atención a
DATE_FORMAT().
Nunca te olvides que cada problema que puedas tener, ya alguien lo tuvo y seguramente los motores de bases de datos ya lo resolvieron. Simplemente hay que leer con atención el manual para encontrar donde está descripta la solución.