No, deben ser tipo fecha esta bien... lo que pasa es que me confundí con eso que le pusiste al incio str (string).
Mira, me parece raro ya que estoy investigando y parece que todo lo tenes bien...
Una cosa, el formato de las fechas almacenadas es AAAA-MM-DD, correcto? En los ejemplos que he buscado, todas hacen referncia a lo mismo
DATEDIFF()
Otra alternativa es que uses la función
TO_DAYS() y restes el resultado de cada fecha.