现在困扰我的小问题。
我正在创建一个查询,从我的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。谢谢大家的帮助。
答案 0 :(得分:1)
用于将02:05
转换为7500
的任何内容都不符合您的时区要求。 UTC中7500
为02: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个时区)。