CHAR(19) es demasiado pequeño para almacenar toda la fecha en milisegundos.
Use CHAR(26) en su lugar:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f') AS CHAR(26)) AS REGDT
);
o elimina los milisegundos:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T') AS CHAR(19)) AS REGDT
);
También podría usar un tipo DATETIME en lugar de una cadena.