2013-07-03 2 views
3

У меня есть смещение часового пояса в моей базе данных. и мне нужно сравнить (created_date + смещение часового пояса) с (текущая дата + смещение часового пояса).Получить текущее время С учетом смещения временной зоны

DATE(created_date + INTERVAL timezone_offset SECOND) 

Я знаю, как добавить часовой пояс в поле даты создания. но я должен добавить часовой пояс с date("Y-m-d H:i:s).

мне нужно следующее в MySQL Query,

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

SQL Query Пример:

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

Вы можете использовать функцию date("Y-m-d H:i:s) в вашем запросе 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('".date("Y-m-d H:i:s")."' + INTERVAL T.timezone_offset SECOND)));" 

Вы просто должны добавить дату ("Y-м-d H: я: s") функцию в SQL Query.

+0

есть. оно работает. Thanx. –

+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

Смежные вопросы