Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php&;mysql记录个人时区_Php_Mysql_Timezone - Fatal编程技术网

php&;mysql记录个人时区

php&;mysql记录个人时区,php,mysql,timezone,Php,Mysql,Timezone,我有一个小问题,但很棘手: 我有一个有很多记录的数据库,每条记录都有两个带有mysql时间戳的字段,如下所示: 2012-02-14 11:09:59 由于每一行都有各自的时区(我将时区保存为字符串,如“Europe/Berlin”,也将其保存为浮动字段中的偏移量,如+1),因此我有一个小问题: 我想查询数据库中比现在更新或旧的记录- 我可以将日期转换为GMT,并使用服务器tmz偏移量搜索它们。 简单,Buuuttt,问题是,我想有可能搜索在某个本地时间发生的记录,例如: 我想在全世界寻找明天2

我有一个小问题,但很棘手:

我有一个有很多记录的数据库,每条记录都有两个带有mysql时间戳的字段,如下所示: 2012-02-14 11:09:59

由于每一行都有各自的时区(我将时区保存为字符串,如“Europe/Berlin”,也将其保存为浮动字段中的偏移量,如+1),因此我有一个小问题:

我想查询数据库中比现在更新或旧的记录- 我可以将日期转换为GMT,并使用服务器tmz偏移量搜索它们。 简单,Buuuttt,问题是,我想有可能搜索在某个本地时间发生的记录,例如:

我想在全世界寻找明天22:00发生的事情。 现在,如果我把所有的时间戳转换成GMT,我就不能这样做,因为在where条件下,22:00不是本地时间,而是GMT时间。。。 有没有办法在一个查询中组合时间戳和tmz字段


提前谢谢你

我认为理想的解决方案是

  • 以UTC存储所有时间,并在输出日期时进行偏移计算

  • 或者使用第二个单独的列显示UTC日期

但是,您的原始要求也应该是可能的-使用
DATE\u ADD()
计算正确的偏移量:

SELECT DATE_ADD(event_time, INTERVAL event_time_offset HOUR) 

现在,如果我将所有时间戳转换为GMT,我就不能这样做了
为什么不呢?使用两个不同字段的解决方案似乎是最好的,尤其是在性能方面。。。再次感谢!!=)