2015-05-27 4 views
0

Я пытаюсь найти способ получить последний день предыдущего месяца в отчете SSRS, который я создаю (он будет в заголовке отчета), но я сталкиваюсь с ошибками, которые я не смогли обойти.Reporting Services - функция DateDiff

Обычно в SQL я бы использовать

DATEADD(dd,-1,DATEADD(mm,0,DATEDIFF(mm,getdate(),0))) 

или

DATEADD(mm,0,DATEDIFF(mm,getdate(),0))-1 

Так что я попытался преобразовать это в версии VB:

DATEADD(DateInterval.Month,0,DATEDIFF(DateIntelval.Month,NOW(),0)) 

, но я держу подъемы ошибок. Затем я попытался запустить функции отдельно и обнаружил, что DateAdd работает, но DateDiff не работает.

Может ли кто-нибудь, пожалуйста, дать мне несколько указаний на то, что я делаю неправильно?

+1

* Visual Studio * - это IDE, а не язык. Какой язык вы используете (VBA, SQL, что-то еще)? * Я продолжаю получать ошибки * не является значимым описанием проблемы. Какие * конкретные ошибки вы получаете? (Связано ли это с очевидной опечаткой в ​​'DateIntelval.Month' в вызове' DateDiff'?) –

+0

@KenWhite извините за опечатку, я набрал все вышеперечисленное без копирования и вставки, так что нет, это не проблема , К сожалению, я не получаю сообщение об ошибке, оно просто показывает «#Error» вместо выражения, когда я просматриваю отчет. – cryocaustik

ответ

1

Visual Studio не распознает функцию DateInterval. Попробуйте использовать эту формулу:

=dateadd("m",0,dateserial(year(Today),month(Today),0)) 
+0

Работал отлично, я не понимал, что DateInterval не был распознан. Спасибо! – cryocaustik