在MySQL數據庫中,我們可以使用默認值來設置時間類型的字段。當我們在創建表的時候定義了一個時間類型的字段,并且使用了DEFAULT關鍵字來指定了一個默認值,那么在新建記錄的時候,如果對應的時間字段沒有給出值,那么其默認值就會被賦予。
CREATE TABLE example ( id INT PRIMARY KEY, create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
在上述例子中,我們定義了兩個時間字段分別為create_time和update_time,在定義的時候分別使用了DEFAULT關鍵字來給出了默認值。create_time的默認值為當前時間戳(使用CURRENT_TIMESTAMP函數來獲取),而update_time的默認值同樣為當前時間戳,不過它還使用了ON UPDATE CURRENT_TIMESTAMP子句來指定在記錄發生更新時自動更新為當前時間戳。
需要注意的是,當我們使用DEFAULT關鍵字為時間字段設置默認值時,需要使用正確的日期時間格式。否則,MySQL可能會無法識別我們指定的默認值。例如,下面的示例就會導致MySQL拋出一個語法錯誤:
CREATE TABLE example ( id INT PRIMARY KEY, create_time TIMESTAMP DEFAULT '2021-01-01', );
在這個例子中,我們指定了一個字符串'2021-01-01'作為create_time字段的默認值,但是MySQL無法正確地將其解析為一個日期時間對象。如果我們希望指定一個指定日期時間的默認值,可以使用DATE_FORMAT函數將其格式化為一個符合MySQL要求的日期時間字符串:
CREATE TABLE example ( id INT PRIMARY KEY, create_time TIMESTAMP DEFAULT DATE_FORMAT('2021-01-01 12:34:56', '%Y-%m-%d %H:%i:%s'), );
在這個示例中,我們使用了DATE_FORMAT函數來將日期時間字符串格式化為'%Y-%m-%d %H:%i:%s'的形式,以適應MySQL的日期時間格式要求。