sql >> Database >  >> RDS >> Mysql

Hoe moeten Unix-tijdstempels worden opgeslagen in int-kolommen?

Standaard UNIX-tijdstempels zijn een 32-bits geheel getal met teken, dat in MySQL een gewone "int"-kolom is. Er is geen manier om 9.999.999.999 op te slaan, want dat is ver buiten het weergavebereik - het hoogste dat een 32-bits int van welke soort dan ook kan gaan, is 4.294.967.295. Het hoogste aantal dat een 32-bits ondertekende binnenkomt, is 2.147.483.647.

Als/wanneer UNIX-tijdstempels naar een 64-bits gegevenstype gaan, moet u een MySQL "bigint" gebruiken om ze op te slaan.

Wat betreft int(10) , de (10) gedeelte is alleen voor weergavedoeleinden. MySQL gebruikt intern nog steeds een volledige 32-bits om het nummer op te slaan, maar geeft alleen 10 weer wanneer u een selectie op de tafel uitvoert.




  1. UTC_TIME Voorbeelden – MySQL

  2. Gratis methoden om corruptie van SQL Server-indexen te herstellen

  3. Hoe een primaire sleutel in SQL te verwijderen

  4. Hoe age() werkt in PostgreSQL