Is it mandatory that you do this with one rule? You could use one rule for comparing employees who were hired in different years, and a second rule for comparing employees who were hired in the same year. To expand on this, let's say you have employees listed this way:
employee(eid,year,month,day)
and, of course, a list of employees. You could use the following three rules:
% For employees that were hired in different years.
senior(Eid1,Eid2) :-
employee(Eid1,X,_,_),
employee(Eid2,Y,_,_),
X<Y.
% For employees that were hired in the same year, different month.
senior(Eid1,Eid2) :-
employee(Eid1,Year,X,_);
employee(Eid2,Year,Y,_); % Notice how one common variable "Year" is used
X<Y.
% For employees that were hired in the same year, same month, different day,
% the rule is "expanded" from the previous one.
senior(Eid1,Eid2) :-
employee(Eid1,Year,Month,X);
employee(Eid2,Year,Month,Y);
X<Y.
Make sure you don't forget and replace "Year" and/or "Month" with underscores, because then somebody hired on 2010-01-01 (ISO 8601) would be shown as senior to someone hired on 2005-12-12.
Then again, perhaps you should catalogue all dates in ISO 8601:2004. No matter how big your employee list, you could write a small script to convert
employee(eID,firstname,lastname,month,year)
to
employee(eID,firstname,lastname,yyyymm)