SYSDATE contains time (hours, minutes and seconds). Regarding your data, you should TRIM(SYSDATE), which would remove time portion.
I think you mean TRUNC(sysdate), not trim()
TRIM() is for character datatypes.
TRIM(sysdate) will first convert sysdate to a character value by using implicit conversion rules and then trim of any trailing spaces from that result and will return a character value as weill. So DOB - TRIM(SYSDATE) will not work.
To rule out any time portion in DOB, the best thing would be to use trunc(dob) - trunc(sysdate).
BUT: that won't work either if DOB is a birthday (as the column name suggests) with a value of e.g. 22-07-1950.
trunc(dob) - trunc(sysdate) will then not return zero (because of the year).
To find out if someone has birthday today a comparison like
WHERE extract(month from dob) = extract(month from sysdate)
AND extract(day from dob) = extract(day from sysdate)