unix时间的MySql给了1个小时太多

时间:2014-04-14 08:28:02

标签: mysql unix-timestamp

现在困扰我的小问题。 我正在创建一个查询,从我的MySql数据库中获取一些数据。 在该数据中,一个字段是时间并且保存为unix时间,在这种情况下,我们可以说7500是值。

7500转换为02:05及时,但当我查询我的数据库时,结果为03:05。 我检查了服务器,MySql服务器和我的电脑的时区,并且都是一样的。

我的查询:

SELECT 
timebilled AS `Ticket_Time`, 
FROM_UNIXTIME(timebilled, '%H:%i') AS `Ticket_Time_Parsed` 
FROM data_table

那么我该如何解决这个问题?


编辑:

我刚刚通过将Windows服务器2012上的时间从UCT + 1更改为UTC来解决了我的问题。 现在价值7500对我来说是02:05。谢谢大家的帮助。

2 个答案:

答案 0 :(得分:1)

用于将02:05转换为7500的任何内容都不符合您的时区要求。 UTC中750002:05,但您使用的是UTC + 1。 02:05应转换为3900

但是,如果您真的只是存储时间并且不想进行时区转换,那么我会远离unixtime,只需将秒存储到00:00并自行转换。

答案 1 :(得分:0)

Unix时间戳存储时间点(例如2014-04-14 13:34:22),而不是时间量(例如13小时12分钟)。

FROM_UNIXTIME(7500)为您提供当前时区的日期时间,时间戳为7500,在您的情况下为1970-01-01 03:05:00(7500秒,+ UTC + 1个时区)。