DATE_FORMAT(CONVERT_TZ) пуст в MySQL

Можно найти много случаев date_format ИЛИ convert_tz вопросов, но ни одного с обоими, поэтому извините, если это было задано и на него был дан ответ.

В любом случае... Я прихожу со следующим запросом.

"SELECT... MAX(DATE_FORMAT(CONVERT_TZ(p.posted_on, 'UTC', 'America/New_York'), 
'%e-%b-%y %l:%i %p')) AS last, MIN(DATE_FORMAT(CONVERT_TZ(p.posted_on, 'UTC', 
 'America/New_York'), '%e-%b-%y %l:%i %p')) AS first.....";

Array
(
    [thread_id] => 7
    [subject] => Sample Thread
    [username] => troutster
    [responses] => 1
    [last] => 
    [first] => 
)

Я могу избавиться от CONVERT_TZ и просто использовать p.posted_on сам по себе, и он отлично работает, поэтому я предполагаю, что делаю что-то неправильно при преобразовании. Спасибо за любую помощь, которую вы можете предоставить.


person Mike Karr    schedule 13.05.2017    source источник


Ответы (2)


В запросе нет проблем. Проблема с данными. Если вы хотите использовать часовой пояс с именем, сначала вам нужно загрузить часовой пояс.

Вы можете проверить таблицы, связанные с часовым поясом, которые будут доступны в базе данных «mysql».

person MohanaPriyan    schedule 13.05.2017
comment
Спасибо. Я новичок, поэтому я запутался в своем коде. Казалось, это было правильно. Не понял про таблицы tz. - person Mike Karr; 13.05.2017

Похоже, вы не установили таблицы часовых поясов, поэтому он не распознает ваш часовой пояс. Простое испытание CONVERT_TZ может доказать это.

вам нужно будет загрузить его с https://dev.mysql.com/downloads/timezones.html

См. это для справки: convert_tz возвращает null

person Rakesh Shewale    schedule 13.05.2017