CHAR(19) é muito pequeno para armazenar sua data inteira com milissegundos.
Use CHAR(26) em vez disso:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f') AS CHAR(26)) AS REGDT
);
ou remova os milissegundos:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T') AS CHAR(19)) AS REGDT
);
Você também pode usar um tipo DATETIME em vez de uma String.