SELECT @Count = COUNT(*), @MinTime = MIN([Clock]), @MaxTime = Max([Clock]) FROM [MyTable] WHERE [Fk] = @fk AND YEAR([Clock]) = YEAR(@clock) AND MONTH([Clock]) = MONTH(@clock) AND DAY([Clock]) = DAY(@clock) IF @Count < 2 BEGIN PRINT 'INSERT' END ELSE BEGIN DECLARE @PkToUpdate AS uniqueidentifier IF (@clock BETWEEN @MinTime AND @MaxTime) BEGIN PRINT 'DO NOT DO ANYTHING BECAUSE IT IS BETWEEN' END ELSE IF (@clock < @MinTime) BEGIN PRINT 'UPDATE row where Clock is @MinTime' SET @PkToUpdate = ( SELECT TOP(1) [PK] FROM [MyTable] WHERE [FK] = @fk AND YEAR([Clock]) = YEAR(@clock) AND MONTH([Clock]) = MONTH(@clock) AND DAY([Clock]) = DAY(@clock) ORDER BY [Clock] ASC) END ELSE BEGIN PRINT 'UPDATE row where Clock is @MaxTime' SET @PkToUpdate = ( SELECT TOP(1) [PK] FROM [MyTable] WHERE [FK] = @fk AND YEAR([Clock]) = YEAR(@clock) AND MONTH([Clock]) = MONTH(@clock) AND DAY([Clock]) = DAY(@clock) ORDER BY [Clock] DESC) END IF (@PkToUpdate IS NOT NULL) BEGIN PRINT 'Update!!!!!' PRINT @PkToUpdate END ENDIs there a way to make this faster, better or prettier?