MySQL 地理时区管理
????? MySQL经常被人们用来建设网络数据库。这时候,MySQL服务器和WEB服务器或都运行在同一台计算机上,或者运行在不同的计算机上。但无论如何都是运行在同一个地理时区里。对数据库用户来说,即使他们散布在世界各地,即使他们在链接和访问MySQL服务器时需要调用一些PHP或java程序,那些程序也只能运行在与MySQ服务器同处一个时区的那台配套的WEB服务器上。用户不必关心时区管理的问题。
????? 可是,如果是一名WEB应用程序开发者,就不能不考虑MySQL服务器的时区管理问题,就不能不考虑怎么样才能用好MySQL服务器的时区管理能力问题:应该让WEB用户有机会看到他们自己的当地时间。通过这里的学习,大家想必已经知道这其实是一件很简单的事情:在WEB用户与MySQL服务器建立链接后执行一条必要命令 “SET time_zon=...”的命令;这条SQL命令已足以让WEB用户看到他自己的时间。
??? 在下面的例子里,MySQ服务器运行在CET时区里,所以让SQL函数now()第一返回的是CET时间,把time_zone变量调整为GMT-8时区后,now()函数返回的将是洛杉机的时区上的时间。
select now();#结果2005-12-07 16:29:54SET time_zone='-8:00'; #或者是:SET @@session.time_zone='-8:00'select now();#结果2005-12-07 8:29:54
?不同时区的自动转换和计算
下表列出会受到时区设置影响的MySQL数据类型和函数。
功能会根据时区设置做出自动调整不会根据时区设置作出自动调整存储日期、时间数据确定当前时间TIMESTAMP数据列;?
?
?
?
?
?
?