fej*_*oco 8 mysql timestamp timezone
时间戳数据类型是表示即时值还是年月日时分秒值?一个瞬间就是一个瞬间,就像你开始阅读这篇文章的那一刻一样,它可以用许多不同的 ymdhm-s+timezone 值来描述。没有时区,这是模棱两可的,同一时刻对我来说可能是 17:25,对其他人来说可能是 13:25。
这就是我认为我得到的。该current_timestamp
函数返回当前时区的当前时间,所以这是一个明确的时刻,真正的now。在表中,它存储为 UTC,因此使用这个假定的时区,它也应该是明确的。
现在这是我不明白的:这是utc_timestamp
函数的存在。我将 acurrent_timestamp
和 an存储utc_timestamp
在同一列中,它们是不同的。这个函数甚至不应该存在,我不明白为什么它代表不同的时刻。
小智 8
TIMESTAMP存储从 1970-01-01 00:00:01 到现在的秒数。当您检索数据时,它会自动转换为日期和时间格式。
CURRENT_TIMESTAMP():返回配置了时区的当前日期时间。 UTC_TIMESTAMP():使用 UTC 时区返回当前日期和时间。
如果您使用的时区不是 UTC,则这些函数总是返回不同的值,否则相等。
MySQL 始终以 UTC 格式存储日期和时间,因此可以轻松地将其转换为不同的时区。NOW()或CURRENT_TIMESTAMP()返回日期/时间加上您配置的时区。
UTC_TIMESTAMP()只返回日期/时间而忽略您的时区设置。
如果使用current_timestamp
,MySQL 将使用在 中配置的时区my.cnf
。如果未在 中设置任何值my.cnf
,则 MySQL 将确定操作系统的时区并在启动时使用该时区。
您可以查看如何使用此查询配置您的服务器:
mysql> SELECT @@global.time_zone, @@session.time_zone;
Run Code Online (Sandbox Code Playgroud)
此外,还可以为每个会话设置时间戳。
utc_timestamp
用于始终获取 UTC 时间戳,无论 MySQL 服务器的时间戳配置为何。
归档时间: |
|
查看次数: |
47289 次 |
最近记录: |