sql >> Databáze >  >> RDS >> Mysql

Standardy pro přidání data/času?

Podle standardu POSIX.1-2001 příští měsíc (jako při zvyšování tm_mon před voláním mktime ) se provádí úpravou hodnot, dokud nezapadají. Takže například příští měsíc od 31. ledna 2001 je 3. březen 2001. Důvodem je, že tm_mday z 31 není platné s tm_mon z 1 (únor), takže je normalizován na tm_mon ze dne 2 (březen) a tm_mday ze 3.

Dalším měsícem od 31. ledna 2000 je 2. březen 2000, protože únor má toho roku 29 dní. Další měsíc od ledna 1 2038 v závislosti na tom neexistuje.

Skvělé na standardech je, že je z čeho vybírat . Zkontrolujte standard SQL, vsadím se, že příští měsíc najdete jiný význam. Mám podezření, že ISO 8601 vám může dát ještě jinou možnost. Jde o to, že existuje mnoho různých chování, význam slova „příští měsíc“ je velmi specifický pro doménu.

edit:myslím Zjistil jsem, jak to SQL-92 zvládá, dotazování na příští měsíc od 31. ledna je zjevně chyba.

Odkazy:



  1. Vysvětlete připojení MySQL jednoduchým jazykem

  2. Poddotaz v příkazu SELECT (MySQL)

  3. Objeví se arabština v php/mysql ???? otazníky v html

  4. Rychlý způsob, jak zjistit počet řádků tabulky v PostgreSQL