Hi @frepez , Welcome to the KNIME community, and thank you to both @rfeigel and @kowisoft for the kind comments.
I think @kowisoft 's solution is excellent and a good demonstration of how this can be achieved using standard nodes and no scripting.
As my date components got a mention, I thought I’d take a look at your particular question anyway. The components I posted only handle months relative to the “current” date, and so would need some modification to handle specific dates as you have. This is something I have been thinking about because I have seen similar asked on the forum a couple of times now. The components I posted on the hub make use of some “hidden” features of String Manipulation which allows it to make some basic java calls, provided you can write it in a way that can be translated into a single line of java code.
This workflow contains two String Manipulation (Multi-Column) nodes to return the required dates as Strings
First and Last day of month with String Manipulation java call.knwf (21.0 KB)
This is a chatGPT chat I had to let it do the work of providing me with the java that I could adapt. I commonly take this approach now of letting AI do the hard work, and then I adapt it. 
This resulted in the following code for “last day of month”
string(
$$CURRENTCOLUMN$$==null
?$$CURRENTCOLUMN$$
:java.time.LocalDate.parse($$CURRENTCOLUMN$$,
java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd")).withDayOfMonth(
java.time.LocalDate.parse($$CURRENTCOLUMN$$,
java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd")).lengthOfMonth()
)
)
and this code for “first day of month”
string(
$$CURRENTCOLUMN$$==null
?$$CURRENTCOLUMN$$
:java.time.LocalDate.parse($$CURRENTCOLUMN$$,
java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd")).withDayOfMonth(1)
)
That code is definitely not something that everybody would enjoy, lol.
Unlike its non-multi column counterpart, String Manipulation (Multi Column) is very fussy about the data types it can handle, and I was not able to pass it actual Dates. I therefore had to pass it your dates as Strings in yyyyMMdd format.
At the end of this, I had two different formats of dates. Your originals in yyyyMMdd format, and the output from the String Manipulations which was yyyy-MM-dd format.
You may be interested to know that I was able to convert both of these with a single String to Date&Time call, by passing it two “optional” date formats as a single format:
[yyyyMMdd][yyyy-M-d]
It can be a useful trick, provided the formats are sufficiently different that it can decide which one a value conforms to.
As @kowisoft mentioned, it is possibly worth making a component, and I will probably turn these into components to add to the others listed as I can see they could be useful.
I think for your purposes that I would recommend using @kowisoft 's approach, at least at first and see how it goes, as although the node count is higher, it is probably more simple to understand the steps, but this String Manipulation/java hybrid approach is an option if you are happy with “more scripty”.
btw, @frepez if you really want to know how to do this with Java Snippet, I can demo how to do it for you (let me know and I’ll find some time), but these would have to be written either hard-wired to your four columns, or you’d have to have a snippet to deal with a single column at a time, and put it in a column loop.
It is true to say that java snippet performance is often much better than combinations of other nodes for large data sets simply because the code is compiled and it runs as a single module. But in my view, Java Snippets are best tested and turned into a component to hide the complexity, as otherwise they do have a tendency to frighten people away… a bit like my above String Manipulations, 