CURRENT_TIMESTAMP,CURRENT_DATE,CURRENT_TIME,now(),sysdate()各項值的區別,我們可以通過在終端下,查看結果就能知道:
SELECT CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP, now(), sysdate();
比如我們要對某表插入數據,這個表add_time字段是datetime類型,那么可以這么做:
INSERT INTO app01_book (title, author, add_time) VALUES ('三重門', '韓寒', CURRENT_TIMESTAMP), ('幻城', '郭敬明', CURRENT_TIMESTAMP);
拓展一下
在Date和Time類型中,有這么三個可選的字段時間類型。** The DATE, DATETIME, and TIMESTAMP Types **
他們三個有一些區別,主要是格式顯示和日期范圍上:
DATE:類型用在日期部分而不是時間部分。mysql獲取和顯示DATE值的格式為:YYYY-MM-DD,它支持的日期范圍:'1000-01-01' to '9999-12-31'
DATETIME:與DATE不同,它可以顯示日期和時間兩部分。mysql可以獲取和顯示DATETIME的格式為:YYYY-MM-DD hh:mm:ss,它支持的范圍:'1000-01-01 00:00:00' to '9999-12-31 23:59:59'
TIMESTAMP:與DATETIME類似,它可以顯示日期和時間兩部分。它的格式為:YYYY-MM-DD hh:mm:ss,它支持的范圍:'1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC。
從上面我們可以看到DATETIME和TIMESTAMP的差別在於:
- 日期存儲范圍不同【上面很明顯能看到】
- TIMESTAMP使用UTC時區,而DATETIME基本原樣輸出【也就是存儲方式不同】。
總的來說,差別不大。對於跨時區的業務,TIMESTAMP更為合適。