MySQL提供了兩個自動時間字段:TIMESTAMP和DATETIME。這兩個字段可以在插入數(shù)據(jù)時自動記錄當前的時間,非常方便。
CREATE TABLE example ( id INT PRIMARY KEY, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, event_time DATETIME );
TIMESTAMP類型表示從1970年1月1日到當前時間的秒數(shù),存儲空間為4個字節(jié)。DATETIME類型則以'YYYY-MM-DD HH:MM:SS'的形式存儲時間,存儲空間為8個字節(jié)。
在上面的代碼中,created_at字段會默認為當前時間,也就是INSERT語句中不寫created_at字段,就會自動記錄當前時間。而updated_at字段則是在UPDATE語句執(zhí)行時自動更新為當前時間。event_time字段則需要手動指定時間。
INSERT INTO example (id, event_time) VALUES (1, '2021-01-01 00:00:00'); SELECT * FROM example;
執(zhí)行完上述代碼后,created_at和updated_at字段會記錄當前時間,而event_time字段則是手動指定的時間。查詢結果如下:
+----+---------------------+---------------------+---------------------+ | id | created_at | updated_at | event_time | +----+---------------------+---------------------+---------------------+ | 1 | 2021-08-10 22:35:57 | 2021-08-10 22:35:57 | 2021-01-01 00:00:00 | +----+---------------------+---------------------+---------------------+
在實際應用中,使用自動時間字段可以方便地記錄數(shù)據(jù)創(chuàng)建時間和更新時間,也方便進行數(shù)據(jù)分析。