Creating a MySQL Time Zone Table

Here is it, the perfect MySQL table for storing ALL timezones:


— Table structure for table `time_zones`

CREATE TABLE IF NOT EXISTS `time_zones` (
`ID` int(4) NOT NULL auto_increment,
`GMT` decimal(12,2) NOT NULL,
`zone` varchar(50) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `timezone` (`zone`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


— Dumping data for table `time_zones`

INSERT INTO `time_zones` (`GMT`, `zone`) VALUES
(-12.00, ‘(GMT-12:00) International Date Line West’),
(-11.00, ‘(GMT-11:00) Midway Island, Samoa’),
(-10.00, ‘(GMT-10:00) Hawaii’),
(-9.00, ‘(GMT-09:00) Alaska’),
(-8.00, ‘(GMT-08:00) Tijuana, Baja California’),
(-8.00, ‘(GMT-08:00) Pacific Time (US & Canada)’),
(-7.00, ‘(GMT-07:00) Mountain Time (US & Canada)’),
(-7.00, ‘(GMT-07:00) Chihuahua, La Paz, Mazatlan’),
(-7.00, ‘(GMT-07:00) Arizona’),
(-6.00, ‘(GMT-06:00) Saskatchewan’),
(-6.00, ‘(GMT-06:00) Guadalajara, Mexico City, Monterrey’),
(-6.00, ‘(GMT-06:00) Central Time (US & Canada)’),
(-6.00, ‘(GMT-06:00) Central America’),
(-5.00, ‘(GMT-05:00) Indiana (East)’),
(-5.00, ‘(GMT-05:00) Eastern Time (US & Canada)’),
(-5.00, ‘(GMT-05:00) Bogota, Lima, Quito, Rio Branco’),
(-5.00, ‘(GMT-04:00) Santiago’),
(-4.50, ‘(GMT-04:30) Caracas’),
(-4.00, ‘(GMT-04:00) Manaus’),
(-4.00, ‘(GMT-04:00) La Paz’),
(-4.00, ‘(GMT-04:00) Atlantic Time (Canada)’),
(-3.50, ‘(GMT-03:30) Newfoundland’),
(-3.00, ‘(GMT-03:00) Montevideo’),
(-3.00, ‘(GMT-03:00) Greenland’),
(-3.00, ‘(GMT-03:00) Georgetown’),
(-3.00, ‘(GMT-03:00) Buenos Aires’),
(-3.00, ‘(GMT-03:00) Brasilia’),
(-2.00, ‘(GMT-02:00) Mid-Atlantic’),
(-1.00, ‘(GMT-01:00) Cape Verde Is.’),
(-1.00, ‘(GMT-01:00) Azores’),
(0.00, ‘(GMT) Casablanca’),
(0.00, ‘(GMT) Greenwich Mean Time : Dublin, Edinburgh, Lis’),
(0.00, ‘(GMT) Monrovia, Reykjavik’),
(1.00, ‘(GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockho’),
(1.00, ‘(GMT+01:00) Belgrade, Bratislava, Budapest, Ljublj’),
(1.00, ‘(GMT+01:00) Brussels, Copenhagen, Madrid, Paris’),
(1.00, ‘(GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb’),
(1.00, ‘(GMT+01:00) West Central Africa’),
(2.00, ‘(GMT+02:00) Athens, Bucharest, Istanbul’),
(2.00, ‘(GMT+02:00) Amman’),
(2.00, ‘(GMT+02:00) Windhoek’),
(2.00, ‘(GMT+02:00) Minsk’),
(2.00, ‘(GMT+02:00) Jerusalem’),
(2.00, ‘(GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, ‘),
(2.00, ‘(GMT+02:00) Harare, Pretoria’),
(2.00, ‘(GMT+02:00) Cairo’),
(2.00, ‘(GMT+02:00) Beirut’),
(3.00, ‘(GMT+03:00) Tbilisi’),
(3.00, ‘(GMT+03:00) Nairobi’),
(3.00, ‘(GMT+03:00) Moscow, St. Petersburg, Volgograd’),
(3.00, ‘(GMT+03:00) Kuwait, Riyadh’),
(3.00, ‘(GMT+03:00) Baghdad’),
(3.50, ‘(GMT+03:30) Tehran’),
(4.00, ‘(GMT+04:00) Yerevan’),
(4.00, ‘(GMT+04:00) Port Louis’),
(4.00, ‘(GMT+04:00) Caucasus Standard Time’),
(4.00, ‘(GMT+04:00) Baku’),
(4.00, ‘(GMT+04:00) Abu Dhabi, Muscat’),
(4.50, ‘(GMT+04:30) Kabul’),
(5.00, ‘(GMT+05:00) Tashkent’),
(5.00, ‘(GMT+05:00) Islamabad, Karachi’),
(5.00, ‘(GMT+05:00) Ekaterinburg’),
(5.50, ‘(GMT+05:30) Sri Jayawardenepura’),
(5.50, ‘(GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi’),
(5.75, ‘(GMT+05:45) Kathmandu’),
(6.00, ‘(GMT+06:00) Almaty, Novosibirsk’),
(6.00, ‘(GMT+06:00) Astana, Dhaka’),
(6.50, ‘(GMT+06:30) Yangon (Rangoon)’),
(7.00, ‘(GMT+07:00) Bangkok, Hanoi, Jakarta’),
(7.00, ‘(GMT+07:00) Krasnoyarsk’),
(8.00, ‘(GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi’),
(8.00, ‘(GMT+08:00) Irkutsk, Ulaan Bataar’),
(8.00, ‘(GMT+08:00) Kuala Lumpur, Singapore’),
(8.00, ‘(GMT+08:00) Perth’),
(8.00, ‘(GMT+08:00) Taipei’),
(9.00, ‘(GMT+09:00) Osaka, Sapporo, Tokyo’),
(9.00, ‘(GMT+09:00) Seoul’),
(9.00, ‘(GMT+09:00) Yakutsk’),
(9.50, ‘(GMT+09:30) Adelaide’),
(9.50, ‘(GMT+09:30) Darwin’),
(10.00, ‘(GMT+10:00) Brisbane’),
(10.00, ‘(GMT+10:00) Canberra, Melbourne, Sydney’),
(10.00, ‘(GMT+10:00) Guam, Port Moresby’),
(10.00, ‘(GMT+10:00) Hobart’),
(10.00, ‘(GMT+10:00) Vladivostok’),
(11.00, ‘(GMT+11:00) Magadan, Solomon Is., New Caledonia’),
(12.00, ‘(GMT+12:00) Auckland, Wellington’),
(12.00, ‘(GMT+12:00) Fiji, Kamchatka, Marshall Is.’),
(13.00, ‘(GMT+13:00) Nuku”alofa’);