Is there a way in MySQL to calculate the offset for any timezone?
For example, to get the local time in the timezone Asia/calcutta. What I want to do is calculate the offset for this timezone and add that offset to GMT to get the local time.
解决方案
If you want to calculate the offset of a time zone such as America/Vancouver from UTC you can do it as follows:
SELECT (unix_timestamp() - unix_timestamp(convert_tz(now(), 'Etc/UTC', 'America/Vancouver'))) / 3600 as offset;
For this to work you will first need to load the time zone information into mysql as outlined here: /doc/refman/5.0/en/mysql-tzinfo-to-sql.html