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

Jak by měla být časová razítka unixu uložena ve sloupcích int?

Standardní časová razítka UNIXu jsou 32bitové celé číslo se znaménkem, což je v MySQL běžný sloupec „int“. Neexistuje žádný způsob, jak byste mohli uložit 9 999 999 999, protože to je mimo rozsah reprezentace - nejvyšší 32bitový int jakéhokoli druhu je 4 294 967 295. Nejvyšší hodnota 32bitů se znaménkem je 2 147 483 647.

Pokud/když časová razítka UNIX přejdou na 64bitový datový typ, budete k jejich uložení muset použít MySQL "bigint".

Stejně jako int(10) , (10) část je pouze pro účely zobrazení. MySQL bude i nadále interně používat plných 32 bitů k uložení čísla, ale při každém výběru na stole zobrazí pouze 10.




  1. PostgreSQL 11 - Procedury

  2. Použití DATE_ADD s názvem sloupce jako hodnota intervalu

  3. Chyba? #1146 – Tabulka 'xxx.xxxxx' neexistuje

  4. Výhody používání zápisu ordinální pozice SQL?