You can't use EOMONTH and DATETIMEFROMPARTS since they arrived with SQL Server 2012, but MONTH and YEAR came with SQL SERVER 2008.
So this should work:
select count(*) as present
from attendance
where present='P'
and name='dummmy'
AND MONTH([date]) = MONTH(SYSDATETIME)
AND YEAR([date]) = YEAR(SYSDATETIME)
which will perform poorly since it cannot use any indexes on date.
But you wouldn't have been able to use that anyway since from your example it also seems you have stored the date as a varchar in italian format.
So to fix that error we need to add a conversion:
select count(*) as present
from attendance
where present='P'
and name='dummmy'
AND MONTH(CONVERT(DATE,[date],105)) = MONTH(SYSDATETIME)
AND YEAR (CONVERT(DATE,[date],105)) = YEAR(SYSDATETIME)