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

Standard per l'aggiunta di data/ora?

Secondo lo standard POSIX.1-2001, il mese prossimo (come incrementando tm_mon prima di chiamare mktime ) viene eseguita regolando i valori finché non si adattano. Quindi, ad esempio, il mese successivo dal 31 gennaio 2001 è il 3 marzo 2001. Questo perché il tm_mday di 31 non è valido con tm_mon di 1 (febbraio), quindi è normalizzato a tm_mon di 2 (marzo) e tm_mday di 3.

Il mese successivo dal 31 gennaio 2000 è il 2 marzo 2000, perché febbraio ha 29 giorni quell'anno. Il prossimo mese dal 1 gennaio 2038 non esiste, dipende.

Il bello degli standard è che ce ne sono così tanti tra cui scegliere . Controlla lo standard SQL, scommetto che puoi trovare un significato diverso del prossimo mese. Sospetto che ISO 8601 possa darti un'altra scelta. Il punto è che ci sono molti comportamenti diversi, il significato di "mese prossimo" è molto specifico del dominio.

modifica:penso Ho scoperto come lo gestisce SQL-92, a quanto pare chiedere il mese prossimo dal 31 gennaio è un errore.

Collegamenti: