sql >> Database teknologi >  >> RDS >> Mysql

Standarder for tilføjelse af dato/klokkeslæt?

I henhold til POSIX.1-2001-standarden, næste måned (som ved at øge tm_mon før du kalder mktime ) gøres ved at justere værdierne, indtil de passer. Så for eksempel er næste måned fra den 31. januar 2001 den 3. marts 2001. Dette skyldes, at tm_mday af 31 er ikke gyldig med tm_mon af 1 (februar), så den er normaliseret til tm_mon af 2 (marts) og tm_mday af 3.

Den næste måned fra 31. januar 2000 er 2. marts 2000, fordi februar har 29 dage det år. Den næste måned fra januar, 1 2038 eksisterer ikke, afhængigt af.

Det fantastiske ved standarder er, at der er så mange at vælge imellem . Tjek SQL-standarden, jeg vil vædde på, at du kan finde en anden betydning af næste måned. Jeg formoder, at ISO 8601 kan give dig endnu et valg. Pointen er, at der er mange forskellige adfærd, betydningen af ​​"næste måned" er meget domænespecifik.

edit:Jeg tror Jeg har fundet ud af, hvordan SQL-92 håndterer det, og det er åbenbart en fejl at bede om næste måned fra den 31. januar.

Links:



  1. Kan ikke oprette forbindelse til ekstern MySQL-server med fejl 61

  2. Hvordan får man en dato i formatet ÅÅÅÅ-MM-DD fra et TSQL-dato-tidsfelt?

  3. Introduktion til SQL

  4. Find ud af, om en tabel er opdelt i SQL Server (T-SQL)