2017-09-05 4 views
0

Je suis en train d'écrire une expression dans SSRS:SSRS par défaut Dates de début/fin Retour une période de dates

Si aujourd'hui JOUR est < = 15 jours, période de paie de retour du 16ème mois précédent au dernier jour du mois Si aujourd'hui jOUR est> = 16 e jour, retour 1er jour du mois en cours au 15

Ceci est l'expression que j'ai maintenant mais ca marche pas:

date de début:

=IIF(DAY(TODAY) <= 15, DateAdd(DateInterval.Day, 1-Day(Today), Today), DateAdd(DateInterval.Month, -1, (DateAdd(DateInterval.Day, 16-Day(Today), Today)))), 
IIF(DAY(TODAY) >= 16, dateadd("m",0,dateserial(YEAR(Today),MONTH(Today),1) 

Date de fin:

=IIF(DAY(TODAY) <= 15, DateAdd(DateInterval.Day, -1, DateSerial(Year(Date.Now), Month(Date.Now), 1)), 
IIF(DAY(TODAY) >= 16, dateadd(dd,datediff(dd,datepart(dd,getdate()),15),getdate()) 

Répondre

0

Je devais faire quelque chose de similaire la semaine dernière ...

--StartDate, if current day is more than 16, set to 1, else 16 
=iif(DatePart("d",Today) >= 16, DateSerial(Year(Today), Month(Today), "1").AddMonths(-1), DateSerial(Year(Today), Month(Today),"16").AddMonths(-1)) 

--EndDate, if current day is more than 16 set to 15, else month end 
=iif(DatePart("d",Today) >= 16, DateSerial(Year(Today), Month(Today), "15").AddMonths(-1), DateSerial(Year(Today), Month(Today),"1").AddDays(-1)) 
+0

Cela fonctionne! Je vous remercie! – cmpmd2

0

Utilisez les expressions suivantes

StartDate:

= 
Iif (Day(Today())>15 
, DateAdd("d", -Day(Today())+1, Today()) 
, DateAdd("d", -Day(Today())+16, DATEADD("m", -1,Today())) 
) 

EndDate:

= 
Iif (Day(Parameters!DateParam.Value)>15 
, DateAdd("d", -Day(Today())+15 , Today()) 
, DateAdd("d", -Day(Today()) , Today()) 
)