TIMESTAMPDIFF(
unidad,
inicial,
final) devuelve un valor en unidades definidas por
unidad, entre dos fechas determinadas.
STR_TO_DATE(
strdefecha,
formato) devuelve un DATETIME desde una cadena definida en
strdefecha, interpretada de acuerdo al formato indicado en
formato.
DATE() lo uso para evitar que interprete lo devuelto por STR_TO_DATE como DATETIME, ya que TIMESTAMPDIFF es sensible a las horas de los datetime.