Mysql
 sql >> Base de données >  >> RDS >> Mysql

Normes pour l'ajout de date/heure ?

Selon la norme POSIX.1-2001, le mois prochain (comme en incrémentant tm_mon avant d'appeler mktime ) se fait en ajustant les valeurs jusqu'à ce qu'elles correspondent. Ainsi, par exemple, le mois suivant à partir du 31 janvier 2001 est le 3 mars 2001. C'est parce que le tm_mday de 31 n'est pas valide avec tm_mon de 1 (février), il est donc normalisé à tm_mon du 2 (mars) et tm_mday de 3.

Le mois suivant à partir du 31 janvier 2000 est le 2 mars 2000, car février compte 29 jours cette année-là. Le mois suivant à partir du 1er janvier 2038 n'existe pas, ça dépend.

Ce qui est formidable avec les normes, c'est qu'il y a tellement de choix . Vérifiez la norme SQL, je parie que vous pouvez trouver un sens différent du mois prochain. Je soupçonne qu'ISO 8601 peut vous donner encore un autre choix. Le fait est qu'il existe de nombreux comportements différents, la signification de "le mois prochain" est très spécifique à un domaine.

edit :je pense J'ai trouvé comment SQL-92 le gère, apparemment demander le mois prochain à partir du 31 janvier est une erreur.

Liens :