I keep getting the above error when running a mssql stored procedure.

Here is the query:
Code:
    SELECT ld.Academic_year, ld.Tutor_Name, ld.Course_Title, ld.FK_Destination_Code, ld.Institution, ld.Employer, ld.Notes, qp.GENDER,
            qld.DESCRIPTION AS LEARNING_DIFFICULTY, qp.DATE_OF_BIRTH
    FROM [dbo].[Learner_Destination] AS ld, ([QUERCUS]..[QUERCUS].[PERSON] AS qp INNER JOIN [QUERCUS]..[QUERCUS].[LEARNER] AS ql ON qp.OBJECT_ID = ql.PERSON)
        INNER JOIN [QUERCUS]..[QUERCUS].[LEARNING_DIFFICULTY] AS qld ON ql.LEARNING_DIFFICULTY = qld.LEARNING_DIFFICULTY
    WHERE (((qp.ID_NUMBER)=CONVERT(float,ld.Learner_ID)) AND ((ql.ACADEMIC_SESSION)=ld.Academic_year));
It seems to be the date of birth field, which is from a linked oracle server.
Are there issues with datetime conversions between oracle and mssql?