MySQL存储不同时区的播放列表

时间:2012-04-04 07:57:46

标签: mysql datetime timezone timestamp

我需要在数据库中创建播放列表,以了解播放器播放每个视频的时间。 我会用这样的东西: table playlist with: id, video_id, play_time,例如,如果play_time是2012-04-10 14:00:00,视频应该在2012-04-10的14:00:00播放,但与用户所在的时区有关。

使用此日期时间或时间戳更好吗?

1 个答案:

答案 0 :(得分:1)

来自MySQL manual

  

MySQL将TIMESTAMP值从当前时区转换为UTC   存储,并从UTC返回到当前时区进行检索。   (对于其他类型,例如DATETIME,不会出现这种情况。)默认情况下,   每个连接的当前时区是服务器的时间。该   可以基于每个连接设置时区。只要时间   区域设置保持不变,您将获得存储的相同值。   如果存储TIMESTAMP值,然后更改时区和   检索值,检索的值与值不同   你存储了。发生这种情况是因为没有使用相同的时区   双向转换。当前时区可用   time_zone系统变量的值。有关更多信息,请参阅   第9.6节,“MySQL Server Time Zone Support”

所以答案是:时间戳