sql >> Database >  >> RDS >> Mysql

Normen voor datum/tijd toevoeging?

Volgens de POSIX.1-2001 standaard, volgende maand (zoals in oplopende tm_mon voordat u mktime calling belt ) wordt gedaan door de waarden aan te passen totdat ze passen. Dus bijvoorbeeld, volgende maand vanaf 31 januari 2001 is 3 maart 2001. Dit komt omdat de tm_mday van 31 is niet geldig met tm_mon van 1 (februari), dus het is genormaliseerd naar tm_mon van 2 (maart) en tm_mday van 3.

De volgende maand vanaf 31 januari 2000 is 2 maart 2000, omdat februari dat jaar 29 dagen heeft. De volgende maand vanaf januari 1 2038 bestaat niet, afhankelijk van.

Het mooie van standaarden is dat er zo veel zijn om uit te kiezen . Controleer de SQL-standaard, ik wed dat je volgende maand een andere betekenis kunt vinden. Ik vermoed dat ISO 8601 je misschien nog een andere keuze geeft. Het punt is dat er veel verschillende gedragingen zijn, de betekenis van 'volgende maand' is erg domeinspecifiek.

edit:ik denk Ik heb ontdekt hoe SQL-92 ermee omgaat, blijkbaar is het een fout om volgende maand vanaf 31 januari te vragen.

Links:



  1. Hoe de mysql-schermconsole in Windows te wissen?

  2. Voorbeelden van opmaak 'datetimeoffset' in SQL Server met behulp van Standard Format Strings (T-SQL)

  3. Hoe de huidige datum en tijd af te trekken van de datum en tijd in de database - PHP

  4. Hoe SQLite-database van Android naar een MySQL-database te kopiëren (repliceren/synchroniseren)