Te estás ahogando en un vaso de agua, y complicando inútilmente con cosas que se resuelven leyendo el manual de referencia.
MySQL, como cualquier otro DBMS cuenta con funciones de fecha, hora y fecha/hora específicamente para manipular y hacer operaciones con ellas. Simplemente debes leer el manual para ver cuál es la que necesitas usar.
Lee el manual:
MySQL 5.0 Reference Manual :: 12 Funciones y operadores :: 12.5 Funciones de fecha y hora
Respecto a la hora GMT, ese tema se maneja a nivel servidor:
MySQL 5.0 Reference Manual :: 5 Administración de bases de datos :: 5.9 Uso internacional y localización de MySQL :: 5.9.8 Soporte de zonas horarias en el servidor MySQL
Además, debes tener en cuenta esto:
Cita: En MySQL 5.0, el servidor mantiene varios ajustos de zonas horarias:
* [...]
* [...]
* Zonas horarias por conexión. Cada cliente que se conecta tiene su propio ajuste de zona horaria, otorgado por la variable de sesión time_zone. Inicialmente esta es la misma que la variable global time_zone[...]
Y este detalle:
Cita: Los valores de timezone pueden darse como cadenas de caracteres indicando una variación con respecto a UTC, como por ejemplo '+10:00' o '-6:00'
En definitiva, las preocupaciones que tienes ya han sido solucionadas y gestionadas hace mucho tiempo, y de diversas formas, en los DBMS. Solamente necesitas aprender a aprovecharlas.