It works for me:
fhem> define iss dummy
fhem> attr iss userReadings joinedData {sprintf("%s,%s,%d",ReadingsVal("iss","date",0),ReadingsVal("iss","time",0),ReadingsVal("iss","duration",0))}
fhem> setreading iss date 2020-05-03
fhem> setreading iss time 13:39
fhem> setreading iss duration 5
fhem> l iss joinedData
iss 2020-05-03 13:39:59 2020-05-03,13:39,5
Note: if duration contains something, which is not a number, you get a warning in the FHEM-log, and joinedData wont be changed.
fhem> setreading iss duration 5min
2020.05.03 13:40:30 1: PERL WARNING: Argument "5min" isn't numeric in sprintf at (eval 26) line 1.
fhem> l iss joinedData
iss 2020-05-03 13:40:30 2020-05-03,13:39,5