2013-07-03 66 views
3

我在我的数据库字段中有时区偏移量。我需要比较(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))) 

请帮助。

+0

检查此参考这可能会帮助您http://stackoverflow.com/questions/17425587/php-adjust-time-zone-for-date/17425678#17425678 –

+0

@RajeevRanjan,我已检查。如何将它添加到MySQL查询? –

+0

DATE(created_date + INTERVAL timezone_offset SECOND)与该问题中的$ local_date类似,只是使用它并传递数据库偏移量以获取所需的日期... –

回答

2

你可以在你的sql查询中使用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”)函数。

+0

是的。有用。感谢名单。 –

+0

任何此复杂都容易出错。我非常喜欢更简单的方法 - 并且CONVERT_TZ是干净而简单地做到这一点的。 –

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

请使用此。不要简单地将日期添加到日期中......它不考虑夏令时和其他与时区相关的古怪事项。 CONVERT_TZ会。 – bobwienholt