Script time stamp not recording consistently.

SOLVED

I've created a custom script to record changes made to the order status of a sales order through a generic shadow table format but I'm having issues getting the time to record properly in the UDF_TIME field specifically. I'm not sure what could be causing this since the time records consistently in the table's key field. The table key is just a concatenated string of several of the other fields in the table to ensure it's always unique.

Hopefully this image shows up okay, its just a small snip of some data as I see it in crystal reports or UDT maintenance. 

Edit: I realize it'd probably be helpful to see the script, so here it is. Maybe someone else in the community would like to do the same thing anyway. As reference, I've got this setup as "Column - Post Validate" on SO_SalesOrderHeader.OrderStatus.

oShadow = 0
sSO = ""
sKey = ""
sStatus = ""
sUser = oSession.UserCode
sDate = oSession.SystemDate
sOrderType = ""
sTime = FormatDateTime(Now,vbLongTime)
retVal = oBusObj.GetValue("SalesOrderNo$", sSO)

oShadow = oSession.GetObject("CM_UDTMaint_bus", "SY_UDT_SO_AUDIT")

if oShadow <> 0 then

Set oShadow = oScript.AsObject(oShadow)

retVal = oBusObj.GetValue("SalesOrderNo$", sSO)
retVal = oBusObj.GetValue("OrderStatus$", sStatus)
retVal = oBusObj.GetValue("OrderType$", sOrderType)
retVal = oShadow.SetKey(sSO & sStatus & sDate & sTime)
retVal = oShadow.SetValue("UDF_SO$", sSO)
retVal = oShadow.SetValue("UDF_STATUS$", sStatus)
retVal = oShadow.SetValue("UDF_USER$", sUser)
retVal = oShadow.SetValue("UDF_DATE$", sDate)
retVal = oShadow.SetValue("UDF_ORDER_TYPE$", sOrderType)
retVal = oShadow.SetValue("UDF_TIME$", sTime)
retVal = oShadow.Write()

end if