Mike, you are returning that elapsed time (without any date information) as a sql datetime string, which is messy and can be shifted by the timezone offset. If you want to make it more bullet-proof, you should return a number representing some units of time (probably milliseconds). Then, in the payload there is no ambiguity or parsing -- just formatting to a time string. The node-red-contrib-moment node is really good for this -- just pass in the millis in the payload and set the output format to be just the time portion of the datetime.
Of course, you can just use a function node as well -- something like this should create the format you need:
var num = +msg.payload || 0; // coerce payload to millis (or 0)
var dtm = new Date(+msg.payload); // create a date object
var iso = dtm.toISOString(); // ISO formatted UTC datetime
var tot = iso.replace(/^.*T(.*)Z$/, "$1"); // extract the time portion
How you tell mssql to return the total time as millis is a separate issue, but I don't have time to look that up right now. I would try without it first...
--
Steve