【发布时间】:2012-10-23 07:11:24
【问题描述】:
我有两个字段:time_scan_start 和 time_scan_end(时间戳字段)。
当我使用 PDO 打开与 MySQL 的连接时,我使用 SET NAMES utf8,time_zone = "+0:00";。
现在,当我在 MySQL 中进行查询时,我必须使用 UTC 时间WHERE time_scan_start >= UTC 还是需要使用 PHP 本地区域? MySQL 会自行调整吗?
我用 gmdate 和 date 做了一些测试,有时它可以工作,其他的则不行。
谢谢
【问题讨论】:
-
一个标准的 mysql 时间字符串没有 TZ 数据,所以
time_scan_start >= '2012-11-02 03:04:05'将假定时区都匹配并且直接比较值。 tz 的东西只有在您进行涉及 tz 值的转换/格式化时才会发挥作用。 -
@MarcB 好的,谢谢!所以无论我在 WHERE 中放什么,它都会搜索假设 WHERE 日期没问题并且假设是 UTC(如果 MySQL 设置为 UTC +00:00)?