It probably has always been thus but in the the first two examples the DATE in dtOne is overwritten by the date in dtTwo but the last one behaves as you would expect
Code:
Procedure OnClick
DateTime dtOne dtTwo
Integer iVal
Move "1/1/1990 12:24" to dtOne
Move "2/2/2019 15:19" to dtTwo
Move (DateSetHour(dtOne,DateGetHour(dtTwo))) to dtOne
Move "1/1/1990 12:24" to dtOne
Move "2/2/2019 15:19" to dtTwo
Move (DateSetHour(dtOne,Integer(DateGetHour(dtTwo)))) to dtOne
Move "1/1/1990 12:24" to dtOne
Move "2/2/2019 15:19" to dtTwo
Move (DateGetHour(dtTwo)) to iVal
Move (DateSetHour(dtOne,iVal)) to dtOne
End_Procedure