sql >> Databasteknik >  >> RDS >> Mysql

Standarder för datum/tid tillägg?

Enligt standarden POSIX.1-2001, nästa månad (som vid ökning av tm_mon innan du anropar mktime ) görs genom att justera värdena tills de passar. Så, till exempel, nästa månad från den 31 januari 2001 är den 3 mars 2001. Detta beror på att tm_mday av 31 är inte giltig med tm_mon av 1 (februari), så den är normaliserad till tm_mon av 2 (mars) och tm_mday av 3.

Nästa månad från 31 januari 2000 är 2 mars 2000, eftersom februari har 29 dagar det året. Nästa månad från januari, 1 2038 existerar inte, beroende på.

Det fantastiska med standarder är att det finns så många att välja mellan . Kontrollera SQL-standarden, jag slår vad om att du kan hitta en annan betydelse för nästa månad. Jag misstänker att ISO 8601 kan ge dig ännu ett val. Poängen är att det finns många olika beteenden, innebörden av "nästa månad" är väldigt domänspecifik.

edit:Jag tror Jag har upptäckt hur SQL-92 hanterar det, uppenbarligen är det ett fel att be om nästa månad från 31 januari.

Länkar:



  1. Kommandon är osynkroniserade; du kan inte köra det här kommandot nu

  2. MySQL &MariaDB Lastbalansering med ProxySQL

  3. Itererar över heltal[] i PL/pgSQL

  4. Varför nosql med cassandra istället för mysql?