Intereting Posts
Автоматическое обновление с помощью AJAX Передать javascript-переменную в php-код Как импортировать категории и изображения в Volusion с помощью API Volusion в PHP Magento – настраиваемый модуль не работает получить информацию о пользователе в CodeIgniter (HMVC & Ion Auth) Ни один поддерживаемый encrypter не найден PHP Mustache 2.1 частичная загрузка НЕ ​​основана на имени файла Ошибка phpMyAdmin: отсутствует расширение mbstring. Проверьте свою конфигурацию PHP Отображающий ассоциативный массив PHP в таблице HTML Как получить значение гендерного переключателя (мужчины, женщины) с CodeIgniter? Как установить Telegram bot webhook? Записи php dns 404 Страница не найдена Запрошенная вами страница не найдена. Код воспламенителя YII, как обрабатывать пользовательскую страницу ошибки 404 вместе с другими страницами ошибок wordbar sidebar loops не работают, когда в search.php, когда не найдено ни одного результата

Добавление секунд в datetime в MySQL

Я пытаюсь добавить секунды к дате, основанной на определенных событиях, которые происходят. Часто, если эти события происходят в одно и то же время, слишком много секунд добавляются. Вот как я сейчас это делаю в PHP и MySQL

$time_add_on = 15 - $seconds_left; DATE_ADD(STR_TO_DATE(end_dt,'%Y-%m-%d %H:%i:%s'), INTERVAL '".$time_add_on."' SECOND 

То, что это делает, – это взять текущие секунды, оставшиеся от «end_dt», вычитая 15 и добавив их в «end_dt», в основном давая вам 15 секунд.

Цель здесь в основном также добавить 15 секунд или сбросить дату, где осталось всего 15 секунд. Это вызывает проблемы, когда вместо сброса на 15 секунд осталось 30 секунд или 45 секунд.

Кто-нибудь знает лучший способ сделать это?

Solutions Collecting From Web of "Добавление секунд в datetime в MySQL"

 UPDATE table end_dt = DATE_ADD(end_dt, INTERVAL 15 second) WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW() 

Я думаю, что это то, что вы хотите, в основном добавляет 15 секунд до end_dt, когда end_dt находится на расстоянии 15 секунд

EDIT NEW QUERY Этот запрос должен работать:

 UPDATE `table` SET end_dt = DATE_ADD(end_dt, INTERVAL (15 - TIMESTAMPDIFF(SECOND, NOW(), end_dt)) SECOND) WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW()