SELECT * , unix_timestamp( NOW( ) ) - unix_timestamp( created ) AS timedif FROM is_meeting_comments WHERE meeting_id_fk=9
此查询用于查找创建记录(CURRENT TIMESTAMP)与执行选择查询之间的时差。
此查询是远程PC上的返回负值。虽然我第一次在本地服务器上测试时这个问题并不明显。这是因为设置了不同的时区吗?但是这有什么关系呢,不管是什么PC,时间应该是相同的,因为它是从服务器端计算的。
为什么会出现负值?
答案 0 :(得分:2)
由于时区差异,它很可能是负面的。 unix_timestamp
函数假定参数位于本地时区,因此它将转换为UTC作为其转换过程的一部分。如果“创建”作为本地时间(非UTF)存储在不同时区的PC上(或配置了不同时区的那个),则在不同时区的系统上读回时,转换可能会关闭。
可以将MYSQL配置为允许每个连接时区(因此时区是用户的时区,而不是数据库服务器的时区),这会影响日期的存储方式。查看this页面了解更多详情。