CHAR(19) je příliš malý na uložení celého vašeho data s milisekundami.
Místo toho použijte CHAR(26):
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f') AS CHAR(26)) AS REGDT
);
nebo odstraňte milisekundy:
CREATE TEMPORARY TABLE TMP(
SELECT CAST(DATE_FORMAT(NOW(), '%Y-%m-%d %T') AS CHAR(19)) AS REGDT
);
Místo řetězce můžete také použít typ DATETIME.