Изменить смещение часового пояса для YEARWEEK с помощью функции COVERT_TZ, php, mysql

Хорошо, вот что я пытаюсь сделать:

 $timezone1 = '+00:00';
 $timezone2 = '+08:00';

WHERE DATE(CONVERT_TZ(from_unixtime(comment_date), '$timezone1', '$timezone2')) =  DATE_SUB(CURRENT_DATE,INTERVAL 1 DAY)";

Эта строка дает мне общее количество вчерашних представлений в таблице путем преобразования вывода в мой правильный часовой пояс.

Теперь я хочу сделать то же самое с общим количеством представленных заявок на эту неделю:

 WHERE YEARWEEK(from_unixtime(comment_date), 1) =  YEARWEEK(CURRENT_DATE, 1)";

это дает мне общее количество заявок на эту неделю, но с неправильным смещением времени. Как мне получить $ timezone1 и $ timezone2 в эту строку? Я пробовал несколько комбинаций, но ничего не работает, например:

 WHERE (CONVERT_TZ(YEARWEEK(from_unixtime(comment_date), 1), '$timezone1', '$timezone2')) =  YEARWEEK(CURRENT_DATE, 1)";

1 ответ

Решение

Я не разработчик PHP или MySQL, но звучит так, как будто вы должны просто изменить DATE в вашем исходном коде с YEARWEEK

WHERE YEARWEEK(CONVERT_TZ(from_unixtime(comment_date), '$timezone1', '$timezone2')) 
    =  YEARWEEK(CURRENT_DATE, 1)";

Если это не работает, пожалуйста, дайте больше информации о том, как это не работает.

Также обратите внимание, что вы на самом деле не предоставляете часовые пояса - вы предоставляете смещения. Это означает, что ваш код будет давать противоречивые результаты в зависимости от летнего времени. Это может или не может быть проблемой, в зависимости от ваших требований.

Другие вопросы по тегам