sql >> Database >  >> RDS >> Mysql

Wat zijn de voor- en nadelen van de verschillende datum/tijd-veldtypen in MySQL?

  • TIMESTAMP wordt opgeslagen in een MySQL-eigen methode (hoewel het in feite gewoon een reeks is die bestaat uit jaar, maand, dag, uur, minuten en seconden) en bovendien wordt een veld van het type TIMESTAMP automatisch bijgewerkt wanneer het record wordt ingevoegd of gewijzigd en geen expliciete veldwaarde wordt gegeven:

    mysql> create table timestamp_test(
        id integer not null auto_increment primary key, 
        val varchar(100) not null default '', ts timestamp not null); 
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> insert into timestamp_test (val) values ('foobar');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> select * from timestamp_test;
    +----+--------+----------------+
    | id | val    | ts             |
    +----+--------+----------------+
    |  1 | foobar | 20090122174108 |
    +----+--------+----------------+
    1 row in set (0.00 sec)
    
    mysql> update timestamp_test set val = 'foo bar' where id = 1;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> select * from timestamp_test;
    +----+---------+----------------+
    | id | val     | ts             |
    +----+---------+----------------+
    |  1 | foo bar | 20090122174123 |
    +----+---------+----------------+
    1 row in set (0.00 sec)
    
    mysql> 
    
  • DATETIME is het standaard datatype voor datums en tijden dat samenwerkt met de datum- en tijdfuncties in MySQL. Ik zou dit waarschijnlijk in de praktijk gebruiken

  • Het wordt niet aanbevolen om datums in INTEGER-indeling op te slaan, omdat u een echt blik wormen opent vanwege interessante problemen zoals tijdzones, schrikkeljaren en dergelijke - tenminste als u van plan bent de database te doorzoeken op basis van specifieke datums die zijn opgeslagen in dat veld.


  1. Hoe bewaar je de bestelling met SELECT WHERE IN()?

  2. PostgreSQL:volgorde per kolom, met specifieke NON-NULL-waarde LAATSTE

  3. opeenvolgende tijdsintervallen groeperen in sql

  4. Tabel maken vanuit weergave - Oracle SQL SQL-fout:ORA-01723:kolommen met lengte nul zijn niet toegestaan