Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was sind die Vor- und Nachteile der verschiedenen Datums-/Zeitfeldtypen in MySQL?

  • TIMESTAMP wird in einer proprietären MySQL-Methode gespeichert (obwohl es im Grunde nur eine Zeichenfolge ist, die aus Jahr, Monat, Tag, Stunde, Minuten und Sekunden besteht) und zusätzlich wird ein Feld vom Typ TIMESTAMP automatisch aktualisiert, wenn der Datensatz eingefügt oder geändert wird, und nicht explizit Feldwert ist gegeben:

    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 ist der Standarddatentyp für Datum und Uhrzeit, der in Verbindung mit den Datums- und Zeitfunktionen in MySQL arbeitet. Ich würde das wahrscheinlich in der Praxis verwenden

  • Das Speichern von Daten im INTEGER-Format wird nicht empfohlen, da Sie aufgrund interessanter Probleme wie Zeitzonen, Schaltjahre und dergleichen ein echtes Fass voller Würmer öffnen - zumindest wenn Sie beabsichtigen, die Datenbank basierend auf bestimmten darin gespeicherten Daten abzufragen dieses Feld.