le nuove versioni di mysql hanno delle tabelle per il time-zone ma che sinceramente non ho ancora avuto tempo di studiare e capire come applicarle. Sempre che non siano solo un tool per mysql query browser.

Il TIME ZONE definito di default e' quello del sistema operativo, quindi anche i passaggi dell'ora legale.

NOW() fa una chiamata all'OS e quindi rende quella ora e stop.

Da php invece hai la possibilita' di prendere la data/ora GMT sia con gmdate() che con gmmktime().

Quindi per l'ora GMT farei una cosa di questo genere:

$ora_gmt = gmdate('Y-m-d H:i:s');

e poi passare $ora_gmt alla query.