CHAR(19) е твърде малък, за да съхрани цялата ви дата с милисекунди.
Вместо това използвайте CHAR(26):
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f') AS CHAR(26)) AS REGDT
);
или премахнете милисекундите:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T') AS CHAR(19)) AS REGDT
);
Можете също така да използвате тип DATETIME вместо String.