Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Standards für die Hinzufügung von Datum/Uhrzeit?

Gemäß dem POSIX.1-2001-Standard wird der nächste Monat (wie beim Erhöhen von tm_mon vor dem Aufruf von mktime ) erfolgt durch Anpassen der Werte, bis sie passen. So ist beispielsweise der nächste Monat ab dem 31. Januar 2001 der 3. März 2001. Dies liegt daran, dass der tm_mday von 31 ist mit tm_mon nicht gültig von 1 (Februar), also auf tm_mon normalisiert vom 2. (März) und tm_mday von 3.

Der nächste Monat vom 31. Januar 2000 ist der 2. März 2000, da der Februar in diesem Jahr 29 Tage hat. Der nächste Monat ab dem 1. Januar 2038 existiert nicht, je nachdem.

Das Tolle an Standards ist, dass es so viele zur Auswahl gibt . Überprüfen Sie den SQL-Standard, ich wette, Sie können eine andere Bedeutung von „nächster Monat“ finden. Ich vermute, dass ISO 8601 Ihnen noch eine weitere Wahl bietet. Der Punkt ist, dass es viele verschiedene Verhaltensweisen gibt, die Bedeutung von „nächster Monat“ ist sehr domänenspezifisch.

Bearbeiten:Ich denke Ich habe herausgefunden, wie SQL-92 damit umgeht, anscheinend ist die Frage nach dem nächsten Monat ab dem 31. Januar ein Fehler.

Links: