반응형
발생하는 특정 이벤트를 기반으로 날짜에 초를 추가하려고합니다. 종종 이러한 이벤트가 동시에 발생하면 너무 많은 초가 추가됩니다. 현재 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 초가 추가되는 문제가 발생합니다.
이 작업을 수행하는 가장 좋은 방법을 아는 사람이 있습니까?
해결 방법
UPDATE table end_dt = DATE_ADD(end_dt, INTERVAL 15 second)
WHERE DATE_SUB(end_dt, INTERVAL 15 second) <= NOW()
나는 그것이 당신이 원하는 것이라고 생각합니다. 기본적으로 end_dt가 지금으로부터 15 초 떨어져있을 때 end_dt에 15 초를 더합니다.
새 쿼리 수정 이 쿼리는 작동합니다.
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()
참조 페이지 https://stackoverflow.com/questions/4055966
반응형
'MySql' 카테고리의 다른 글
MySQL mysql show processlist는 많은 프로세스를 나열합니다. sleep 및 info = null? (0) | 2020.10.31 |
---|---|
MySQL 'SQLSTATE [HY000] [2002] 메시지가있는'PDOException '호스트에 대한 경로가 없습니다. (0) | 2020.10.31 |
MySQL Docker MYSQL '[2002] 연결 거부 됨' (0) | 2020.10.31 |
MySQL 데이터베이스에 쓰는 동안 아포스트로피를 처리하는 방법 (0) | 2020.10.31 |
MySQL 하나의 쿼리에서 업데이트 및 선택 (0) | 2020.10.31 |
댓글