Предполагается, что ваша таблица выглядит примерно так
+----------+----------+------+-----+---------+---------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------+------+-----+---------+---------+
| dt | date | YES | | NULL | |
| tm | time | YES | | NULL | |
| fulldttm | datetime | YES | | NULL | |
| gcdttm | datetime | YES | | NULL | VIRTUAL |
+----------+----------+------+-----+---------+---------+
4 rows in set (0.02 sec)
and dt is formatted '2019-01-01' and time '10:00:00' then str_to_date
select str_to_date(concat(dt,' ',tm),'%Y-%m-%d %h:%m:%s') dttm
from t;
возвращает
+---------------------+
| dttm |
+---------------------+
| 2019-00-01 10:00:00 |
+---------------------+
1 row in set (0.00 sec)
Как отмечает @Raymond Nijland, вы можете использовать сгенерированный столбец
`gcdttm` datetime AS (str_to_date(concat(dt,' ',tm) ,'%Y-%m-%d %h:%m:%s'))
и вообще не беспокоиться о триггере.
+------------+----------+----------+---------------------+
| dt | tm | fulldttm | gcdttm |
+------------+----------+----------+---------------------+
| 2019-01-01 | 10:00:00 | NULL | 2019-00-01 10:00:00 |
+------------+----------+----------+---------------------+
1 row in set (0.00 sec)