Look it is really simple, mysql uses the ISO 8601 date format YYYY-MM-DD, and that is the only date format that makes sense. It is human readable without any national or cultural bias, self-sorting, easy to use in calculations, and not subject to any platform dependence.
Now, most operating systems and software actually store dates and times as an integer ( a number without any fractions). They then transform that number when they present it to you on a screen or in a file/database output: what you see is NOT what you get. With mysql, what you see is what is stored and what you get.
The output that you get from every platform is, in the end, a text string, the date. It can not be anything else because it contains characters like / or Jan etc. So date calculations will always require that the visual, or even stored, date data be transformed before processing. This is what causes all the problems, this transformation; and the more so becasuse most of the time you are not even aware of it.
So. if you want to be a progarmmer then you are just going to have to get your head around all this. You are going to have to learn the ins and outs of the platform you are using, and espoecially the limitations that this imposes on you. You are going to have to learn how to manipulate and transform dates for ALL the technologies that you use.
The easiest way to do that is to start with the ISO 8601 foirmat as your base, and learn how to transform to and from that for any given platform or technology. Pain?? Well why do you want to be a programmer then? We do it cos it is NOT EASY - if it were then any monkey could do it and it would not be a challenge, ot would be boring.