CASE WHEN CURRENT_TIMESTAMP() < STR_TO_DATE(CONCAT(training_date, ' ', opening_time), '%Y-%m-%d %H:%i:%s') THEN 0 WHEN CURRENT_TIMESTAMP() >= STR_TO_DATE(CONCAT(training_date, ' ', end_time), '%Y-%m-%d %H:%i:%s') THEN 2 ELSE 1 END UPDATE safe_training SET state = WHERE training_date IS NOT NULL AND opening_time IS NOT NULL AND end_time IS NOT NULL AND STR_TO_DATE(CONCAT(training_date, ' ', opening_time), '%Y-%m-%d %H:%i:%s') IS NOT NULL AND STR_TO_DATE(CONCAT(training_date, ' ', end_time), '%Y-%m-%d %H:%i:%s') IS NOT NULL AND ( state IS NULL OR state != )