我来自埃及,我的时间是+2 gmt,但我的在线服务器是-5 gmt所以当调用数据库的一些查询来获取凌晨2点的时间时!我昨天得到的数据不是今天的所以我想知道如何使用mysql语句或java代码来解决这个问题?例如,当我打电话时:
SELECT DAYOFWEEK(CURDATE())
它得到正确的值3,但如果我在埃及当地时间凌晨3点(1 gmt)调用它,它得到2。
cqoc49vn1#
在数据库中处理时间的最佳方法是始终存储“utc”时间(即使在存储时间戳时必须从本地时间转换)。然后,在检索时间时,通过应用区域设置信息将其转换为客户端的“本地时间”(在当今世界中通常是浏览器)。如果您使用这个过程,您就不必知道您的服务器所在的位置(有时托管提供者位于您不知道的位置……)。
1条答案
按热度按时间cqoc49vn1#
在数据库中处理时间的最佳方法是始终存储“utc”时间(即使在存储时间戳时必须从本地时间转换)。然后,在检索时间时,通过应用区域设置信息将其转换为客户端的“本地时间”(在当今世界中通常是浏览器)。
如果您使用这个过程,您就不必知道您的服务器所在的位置(有时托管提供者位于您不知道的位置……)。