在使用MySQL數據庫時,有時候我們會遇到導入時間變成1900年的情況,這是由于MySQL默認采用零年(即0000年)作為時間戳的起點,而Excel默認采用1900年作為時間戳的起點所導致的。在導入Excel數據到MySQL數據庫時,我們需要注意這一點。
CREATE TABLE `test_table` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `age` INT(11) NOT NULL, `birthday` DATE NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; LOAD DATA INFILE 'test.csv' INTO TABLE test_table FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS (name, age, @birthday) SET birthday = DATE_ADD('0000-01-01', INTERVAL (@birthday-2) DAY);
在導入數據時,我們可以使用DATE_ADD函數將Excel時間戳減去2天,然后再加上MySQL的起點時間來得到正確的日期。這樣就可以解決導入時時間變為1900年的問題了。