POr al menos dos causas:
1) No puedes usar un alias en la misma sentencia SELECT donde lo creas. No existe en ese momento.
2) HOUR es una palabra clave o palabra reservada, porque es nombre de un componente de SQL. No se deben usar palabras reservadas como nombre de objetos (tablas, columnas, alias, etc), porque pueden provocar errores indetectables.
Prueba:
Código MySQL:
Ver originalSELECT fecha_hora
, TIME(fecha_hora
, '%H %i %s') hora
, TIMEDIFF
(TIME(fecha_hora
), '02:00:00') difference_hour