sql >> Databasteknik >  >> RDS >> Mysql

Vilka är fördelarna och nackdelarna med de olika datum/tid-fälttyperna i MySQL?

  • TIMESTAMP lagras i en MySQL proprietär metod (även om det i princip bara är en sträng som består av år, månad, dag, timme, minuter och sekunder) och dessutom uppdateras ett fält av typen TIMESTAMP automatiskt när posten infogas eller ändras och inte uttryckligen fältvärdet anges:

    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 är standarddatatypen för datum och tider som fungerar tillsammans med datum- och tidsfunktionerna i MySQL. Jag skulle förmodligen använda detta i praktiken

  • Att lagra datum i INTEGER-format rekommenderas inte, eftersom du öppnar en riktig burk med maskar på grund av intressanta problem som tidszoner, skottår och liknande - åtminstone om du tänker fråga databasen baserat på specifika datum lagrade i det fältet.


  1. Hur kontrollerar man att anslutningssträngen är giltig?

  2. GWT-databasåtkomst utan RPC

  3. PostgreSQL:skrivskyddad tabell

  4. Bästa metoder för mjuk borttagning (PHP/MySQL)