Think I might have solved it, simple way too
where Name=@name and SIOdate = convert(date,getdate())
should be :-
where Name=@name and SIOdate = convert(date,getdate()) and SignIn is NULL
Simple fix, the lastest record should always have a NULL SignIn