Изменить смещение часового пояса для 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)";
Если это не работает, пожалуйста, дайте больше информации о том, как это не работает.
Также обратите внимание, что вы на самом деле не предоставляете часовые пояса - вы предоставляете смещения. Это означает, что ваш код будет давать противоречивые результаты в зависимости от летнего времени. Это может или не может быть проблемой, в зависимости от ваших требований.