Перейти к содержанию
  • Нужно заняться проблемой 2038 года


    в большом количестве используются 32 битные timestamp которые обязательно дадут о себе знать.


    Обратная связь

    Рекомендуемые комментарии

    Electr0

    Опубликовано

    где проблема проявит себя:

    ally_warning_system: перестанет понимать дату предупреждения.

    ally_fort_system : перестанет работать корректность определения даты изменения / создания постройки.

    ally_vip_system: випка не сможет понять истекла ли випка у игрока.

    Electr0

    Опубликовано

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

    Electr0

    Опубликовано

    https://bugs.mysql.com/bug.php?id=12654 печаля, даже mysql не готов к этому.

    а 2548990800 это  GMT: Monday, 10 October 2050 г., 5:00:00 по секундному времени.

     

    select from_unixtime(2548990800);

    а он возвращает тебе NULL)

     

    Electr0

    Опубликовано

    Если хранить данные в полях Datetime

    выглядят они так:

    SELECT NOW();

    2020-01-21 19:54:06

     

    то потом можно их извлекать средствами самого mysql:

    к примеру: 

    SELECT YEAR("2020-01-21 19:54:06"), MONTH("2020-01-21 19:54:06"), HOUR("2020-01-21 19:54:06"), MINUTE("2020-01-21 19:54:06"), SECOND("2020-01-21 19:54:06");

     

    Показ текущего времени с рапределением чисел года, месяца, часа, секунды по отдельности.

    SELECT YEAR(NOW()) as current_year, MONTH(NOW()) as current_month, HOUR(NOW()) as current_hour, MINUTE(NOW()) as current_minute, SECOND(NOW())  as current_second;

     

    в таком случае переделать будет не трудно.

    Electr0

    Опубликовано

    ally_fort_system поправлена

     

    пример запроса конвертации поля таблицы с timestamp в datetime

     

    ALTER TABLE fs_obj_storage ADD COLUMN new_time DATETIME;
    UPDATE fs_obj_storage SET new_time=FROM_UNIXTIME(time);
    ALTER TABLE fs_obj_storage DROP COLUMN time;
    ALTER TABLE fs_obj_storage CHANGE COLUMN new_time time DATETIME NOT NULL;

     

    следующий дедлайн 9999 год, когда поле DATETIME перестанет действовать, ну и мы тоже D

    Electr0

    Опубликовано

    изменения отменены, нужно избавится от чтения 32 битных чисел даты которые переполнятся к 38 году на стороне приложения которое 32 битное в нашем случае Sourcemod. Оставим MYSQL эту работу, а к 2038 году в MYSQL добавят поддержку  64 битных чисел в функции from_unixtime и все будет ок. Нужно лишь изменить тип хранения поля time в BIGINT

    Electr0

    Опубликовано

    ally_fort_system переправлена

    ally_vip_system готова

    Electr0

    Опубликовано

    34 минуты назад, Electr0 сказал:

    ally_vote_manager тоже подвержен проблеме

    код сбора белого листка имунки от кика переписан, теперь не пишет  лишнюю информацию в ввиду времени старта и конца, при входе игрока ничего больше не делает.

    Electr0

    Опубликовано

    Значение Статус изменено на: Закрытое тестирование

    Electr0

    Опубликовано

    Значение Статус изменено на: Публичное тестирование

    Electr0

    Опубликовано

    ally_warning_system

    ally_fort_system

    ally_vip_system

    ally_vote_manager

     

    под наблюдением.



    Присоединяйтесь к обсуждению

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

    Гость
    К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
    Добавить комментарий...

    ×   Вставлено с форматированием.   Вставить как обычный текст

      Разрешено использовать не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

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

×
×
  • Создать...