For those interested - the solution was:
Set all date formats to yyyy-mm-dd (you may need to change the format saved when using Access DB tables)
Convert date to integer in a second field using : number(concat(substring(string(xdDate:AddDays(xdDate:Today(), -365)), 1, 4), substring(string(xdDate:AddDays(xdDate:Today(), -365)), 6, 2), substring(string(xdDate:AddDays(xdDate:Today(), -365)), 9, 2)))
Note that this returns a value 1 year (365 days) before today
I converted the second date to an integer in the conditional statement using the following :
number(concat(substring(string(@StartDate), 1, 4), substring(string(@StartDate), 6, 2), substring(string(@StartDate), 9, 2)))
Note that relative xPath has been used. The absolute xPath was used in the first part of the statement
Complete statement used was :
count(xdXDocument:GetDOM("Timecards")/dfs:myFields/dfs:dataFields/d:Timecards[number(concat(substring(string(@StartDate), 1, 4), substring(string(@StartDate), 6, 2), substring(string(@StartDate), 9, 2))) > xdXDocument:get-DOM()/dfs:myFields/my:FormFields/my:CountFields/my:AnotherDate and @ID = current() and @NotesSun = "A"])