I am trying to execute a for loop that passes a begin date in the format like '201812' and goes up increments to an end date (as an example) of '201903'. The variables get passed as Integers to stored procs which then grab and insert data based on those values. I was trying to implement the pattern found here but it does not seem to be correctly incrementing: 

[SSIS For Loop Container with Date Variable](https://stackoverflow.com/questions/53591179/ssis-for-loop-container-with-date-variable)

I have set up variables as follows: 

[![User Variables](https://i.stack.imgur.com/ESi5z.gif)](https://i.stack.imgur.com/ESi5z.gif)

The ETLBeginPeriod and ETLEndPeriod are set in Execute SQL Tasks here:

[![Variables Get Set](https://i.stack.imgur.com/uQXJq.gif)](https://i.stack.imgur.com/uQXJq.gif)

And then here are the expressions in the For Loop

[![For Loop Expressions](https://i.stack.imgur.com/hjYeA.gif)](https://i.stack.imgur.com/hjYeA.gif)

The full expression in the AssignExpression is

```
@[User::Counter] = LEFT((DT_WSTR,19)(DATEADD("mm",1,(DT_DBDATE)(LEFT((DT_WSTR, 10) (@[User::Counter]),4) + "-" + RIGHT((DT_WSTR, 10) (@[User::Counter]),2) + "-" + "01"))),4) + SUBSTRING((DT_WSTR,19)(DATEADD("mm",1,(DT_DBDATE)(LEFT((DT_WSTR, 10) (@[User::Counter]),4) + "-" + RIGHT((DT_WSTR, 10) (@[User::Counter]),2) + "-" + "01"))),6,2)

```

When testing the *AssignExpression* the expression itself does return a correct value (i.e. it will change `201808` to `201809` but this doesn't seem to be getting hit. It will get the correct value on the initial pass and run `201808` and then try again with `201808`. So it doesn't seem to change the Counter Value.