2010-09-13 93 views
1

我想在mysql時區表中的所有時區的列表,並根據需要選擇:MySQL:如何爲所有時區選擇UTC偏移量和DST?

1)他們目前從GMT
2)是否DST由時區使用(不無論是目前使用的偏移量, DST只是是否被認爲是在一年中的某一點對於時區)

原因: 我需要建立一個Web表單和匹配用戶的時區信息(我可以從JavaScript生成),以存儲在正確的時區在MySQL DB中。我可以找到UTC偏移量並從javascript函數中獲取DST標誌。

+0

http://dev.mysql.com/doc/refman/5.1/en/mysql-tzinfo-to -sql.html – 2010-09-13 17:42:09

+0

我按照這個文檔填充了時區表,現在我需要用上面列出的信息查詢所有的時區。這是我堅持的查詢。 – 2010-09-13 17:45:36

回答

1

試試這個查詢。該offsettime在(偏移/ 60/60)

SELECT tzname.`Time_zone_id`,(`Offset`/60/60) AS `offsettime`,`Is_DST`,`Name`,`Transition_type_id`,`Abbreviation` 
FROM `time_zone_transition_type` AS `transition`, `time_zone_name` AS `tzname` 
WHERE transition.`Time_zone_id`=tzname.`Time_zone_id` 
ORDER BY transition.`Offset` ASC; 

的結果是

501 -12.00000000 0 0 PHOT Pacific/Enderbury 
369 -12.00000000 0 0 GMT+12 Etc/GMT+12 
513 -12.00000000 0 1 KWAT Pacific/Kwajalein 
483 -12.00000000 0 1 KWAT Kwajalein 
518 -11.50000000 0 1 NUT Pacific/Niue 
496 -11.50000000 0 1 SAMT Pacific/Apia 
528 -11.50000000 0 1 SAMT Pacific/Samoa 
555 -11.50000000 0 1 SAMT US/Samoa 
521 -11.50000000 0 1 SAMT Pacific/Pago_Pago 
496 -11.44888889 0 0 LMT Pacific/Apia 
528 -11.38000000 0 0 LMT Pacific/Samoa 
555 -11.38000000 0 0 LMT US/Samoa 
521 -11.38000000 0 0 LMT Pacific/Pago_Pago 
518 -11.33333333 0 0 NUT Pacific/Niue 
544 -11.00000000 0 3 BST US/Aleutian 
163 -11.00000000 0 3 BST America/Nome 
518 -11.00000000 0 2 NUT Pacific/Niue 
496 -11.00000000 0 2 WST Pacific/Apia 
544 -11.00000000 0 0 NST US/Aleutian 
163 -11.00000000 0 0 NST America/Nome 
528 -11.00000000 0 4 SST Pacific/Samoa 
528 -11.00000000 0 3 BST Pacific/Samoa 
相關問題