Привет всем (от новичка MySQL)MySQL CONVERT_TZ()
Я пытаюсь создать базу данных, которая хранит ежедневно раз Уведомления, как указано пользователем. Например, пользователь хочет получить предупреждение, если какой-либо критерий выполняется каждый день с 7:00 до 7:30. В попытке реализовать это, мне нужно разместить летнее время. Вот моя попытка решения:
- Храните пользователи локального часового пояса (в длинной форме, например, «US/Eastern») информация в одной таблице (скажем USERINFO), и время срабатывания сигнализации в другой таблице (говорят userAlarms).
- При запросе таблицы userAlarms преобразуйте время UTC в локальное время пользователя, как указано столбцом tz, хранящимся в таблице userInfo, с помощью
CONVERT_TZ(UTC_TIME(), 'UTC', userInfo.tz)
.
Вопрос 1. Из моего понимания, указав название часового пояса (например, US/Eastern) должны принять летнее время во внимание дневного света. Например, при вызове CONVERT_TZ('00:00:00', 'UTC', 'US/EASTERN')
1 января должно быть указано «19: 00: 00», но 1 июля вызов должен дать «20: 00: 00». Я прав?
Вопрос 2. Если Q1 правильный, мне нужно постоянно обновлять таблицу часовых поясов MySQL, чтобы обновлять временные интервалы UTC?
Вопрос 3. Образец, указанный в документации MySQL SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
, дает «NULL
» при запуске на моем сервере. Может ли это быть вызвано отсутствием настройки таблиц часовых поясов? Как я могу это проверить?
Это мне дает «Ошибка 1046 (3d000): Нет базы данных выбрано» –
Вам нужно для вывода вывода в буквальном смысле mysql -uroot mysql' - mysql, являющегося двоичным исполняемым файлом, а второй mysql - именем базы данных. – philwinkle
или использовать mysql; 'сначала использовать этот db для всех команд. Или непосредственно: 'SELECT * FROM mysql.time_zone;' – Razor