string concatenation

a:08:30:00.423
b:string(b.second), “:”, string `int$mod[b;1000]

“08:30:00”

,“:”

,“4”

,“2”

,“3”


c:string(b.second)

“08:30:00”

d:string `int$mod[b;1000]

“423”

e:c,“:”,d

“08:30:00:423”

Why is there a difference between b and e ?

Is there a way to have b as “08:30:00:423” without temporary variables ?

you need to use square brackets for first String function call.

q) string[a.second], “:”, string `int$mod[a;1000]

output: “08:30:00:423”

Without it your query is equivalent to :

string (a.second, “:”,string `int$mod[a;1000])

in this form it is creating a list first and then converting each of them to string