In the first case (dt) makes a heterogeneous dictionary:
q)d1:`d`t!(.zd ;.zt) q)type value d1 0h
now if you add and assign any kind of homogeneous or heterogeneous dictionary, it will work.
while in another case the first dictionary created is homogeneous and it throws an error when you add and assign a heterogeneous dictionary (or a homogeneous dictionary of a different type, for that matter)
q)d2:`s`i!`VOD`L q)type value d2 11h q)type value `d`t!(.zd ;.zt)
To solve this problem, you only need to add a dictionary and then assign it.
q)d2:`s`i!`VOD`L q)d2:d2, `d`t!(.zd ;.zt) q)d2 s| `VOD i| `L d| 2018.03.25 t| 09:59:17.109
source share