获取当前时间给定时区偏移量

时间:2013-07-03 12:22:07

标签: php mysql datetime timezone

我的数据库字段中有时区偏移量。我需要比较(created_date +时区偏移)与(当前日期+时区偏移)。

DATE(created_date + INTERVAL timezone_offset SECOND)

我知道如何在创建的日期字段中添加时区。但我必须使用date("Y-m-d H:i:s)添加时区。

我在mysql查询中需要以下内容,

DATE("use php date function to get current date and time" + INTERVAL timezone_offset SECOND)

SQL查询示例:

SELECT * FROM `admin` AS `A`
  INNER JOIN `timezones` AS `T` ON `T`.`admin_id`=`A`.`admin_id`
  WHERE (DATE(A.current_date + INTERVAL T.timezone_offset SECOND) != DATE('current    datetime by php function ' + INTERVAL T.timezone_offset SECOND)))

请帮忙。

2 个答案:

答案 0 :(得分:2)

如果你的MySQL实例加载了时区表(参见http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html),那么你可以使用非常方便的CONVERT_TZ函数。

CONVERT_TZ(created_date, {time zone name that created_date is created in}, {time zone name you want})

我一直都在使用它,非常方便。

答案 1 :(得分:2)

您可以在sql Query中使用date("Y-m-d H:i:s)函数,如下所示。

"SELECT * FROM `admin` AS `A`
   INNER JOIN `timezones` AS `T` ON `T`.`admin_id`=`A`.`admin_id`
    WHERE (DATE(A.current_date + INTERVAL T.timezone_offset SECOND) != DATE('".date("Y-m-d H:i:s")."' + INTERVAL T.timezone_offset SECOND)));"

您只需在Sql Query中添加日期(“Y-m-d H:i:s”)函数。