Функция MySQL STR_TO_DATE не работает во времени

Я хочу только время, чтобы сравнить с другой строкой времени, поэтому я использую функцию STR_TO_DATE чтобы преобразовать мою временную строку в формат даты

Ниже оператор работает отлично для меня, поэтому я думаю, что MySQL не имеет никаких проблем

 SELECT STR_TO_DATE('26/04/2011', '%d/%m/%Y'); 

Но я не знаю, почему ниже один не работает для меня

 SELECT STR_TO_DATE('11:59:59','%h:%i:%s'); 

Выше инструкция всегда возвращает NULL, когда я запускаю в консоли SQL PhpMyAdmin

Это действительно из-за режима SQL NO_ZERO_DATE . Вы должны были видеть это, когда Ананд Рокзз связан с руководством, но эта ссылка является лишь половиной объяснения. Начиная с MySQL 5.7.4, этот параметр устарел. В первом примере вы устанавливаете дату; во втором, NO_ZERO_DATE вызывает возврат NULL, потому что вы не указываете дату. Начиная с 5.7.8, NO_ZERO_DATE и NO_ZERO_IN_DATE были включены со значением sql_mode по умолчанию. Согласно руководству , кажется, что отмена и удаление частично отменены (начиная с 5.7.8), поэтому вы можете явно установить это в my.cnf (или в сеансе).

Вы также должны обратиться к руководству относительно директивы NO_ZERO_DATE .