-
Como se explica en la entrada manual para
DATE_ADD():En tu caso, porque
table1.times unTIMEvalue, la función devuelve una cadena.La cadena se devuelve en el conjunto de caracteres y la intercalación proporcionada por
character_set_connectionycollation_connection. -
Como se explica en la entrada manual para
TIME():La cadena se devuelve como una cadena binaria (¿por qué no usar el conjunto de caracteres de conexión y la intercalación me supera, tal vez un error?).
-
Como se explica en la entrada manual para Type Conversion in Expression Evaluation :
Por lo tanto, la comparación realizada es una comparación de cadenas, pero el
binaryla cadena no se puede forzar a una intercalación adecuada para la comparación (ya que se desconoce su codificación). De ahí el error que está presenciando.
Se podría forzar a que la comparación se realice correctamente casting
explícitamente uno o ambos operandos, pero estaría tentado a volver a trabajar en la cláusula para que la conversión se realice implícitamente a partir de la comparación con un TIME tipo:
TIME(table1.dt1 - INTERVAL 1 MINUTE) <= table1.tim