Jörgen Andersson
Вы не можете использовать EOMONTH и DATETIMEFROMPARTS, так как они прибыли с SQL Server 2012, но месяц и год пришли с SQL SERVER 2008.
Так что это должно сработать:
select count(*) as present
from attendance
where present='P'
and name='dummmy'
AND MONTH([date]) = MONTH(SYSDATETIME)
AND YEAR([date]) = YEAR(SYSDATETIME)
который будет работать плохо, так как он не может использовать какие-либо индексы на дату.
Но вы все равно не смогли бы использовать это, так как из вашего примера также кажется, что вы сохранили дату в виде varchar в итальянском формате.
Поэтому чтобы исправить эту ошибку нам нужно добавить преобразование:
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)