我有一个以UTC格式存储时间的MySQL数据库。但是,当我使用MySQL Workbench连接它时,我希望在PST中看到时间。我知道我可以使用tz_convert将各列转换为PST。我想知道有没有办法将整个客户端会话设置为时区,这样我就不必将tz_convert放在每个单独的时间列上。
答案 0 :(得分:0)
您的列必须是TIMESTAMP类型才能自动转换为您的本地时间戳。正如10.6 MySQL Server Time Zone Support所述:
当前会话时区设置会影响区域敏感的时间值的显示和存储。这包括由NOW()或CURTIME()等函数显示的值,以及存储在TIMESTAMP列中和从TIMESTAMP列中检索的值。 TIMESTAMP列的值将从当前时区转换为UTC以进行存储,并从UTC转换为当前时区以进行检索。
但是,它不适用于DATE,TIME或DATETIME:
当前时区设置不会影响由UTC_TIMESTAMP()等函数显示的值或DATE,TIME或DATETIME列中的值。这些数据类型中的值也不是以UTC格式存储的;只有从TIMESTAMP值转换时,时区才适用于它们。如果您想要DATE,TIME或DATETIME值的特定于语言环境的算术,请将它们转换为UTC,执行算术,然后转换回来。