MySQL中有許多用于處理時間和日期的內置函數,這些函數可以幫助我們快速、精確地處理時間相關的操作,例如計算時間間隔、時間轉換、格式化等。
以下是一些常用的時間表達式:
當前日期:SELECT CURDATE(); 當前時間:SELECT CURTIME(); 當前日期時間:SELECT NOW(); 指定年份的日期:SELECT DATE('2022-01-01'); 指定時間的日期時間:SELECT TIMESTAMP('2022-01-01 01:01:01');
如果要獲取指定日期的前一天或后一天,可以使用DATE_ADD和DATE_SUB函數:
獲取前一天:SELECT DATE_SUB('2022-01-01', INTERVAL 1 DAY); 獲取后一天:SELECT DATE_ADD('2022-01-01', INTERVAL 1 DAY);
另外,我們還可以使用DATE_FORMAT函數來格式化日期和時間:
SELECT DATE_FORMAT('2022-01-01', '%Y年%m月%d日 %H:%i:%s');
上述代碼輸出的結果為:“2022年01月01日 00:00:00”。其中,%Y表示年份,%m表示月份,%d表示日期,%H表示小時,%i表示分鐘,%s表示秒數。
需要注意的是,MySQL中日期和時間的數據類型分別為DATE和TIME,它們分別占用3個字節和4個字節。
CREATE TABLE `test` ( `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `datetime` DATETIME NOT NULL, `timestamp` TIMESTAMP NOT NULL ) ENGINE=INNODB DEFAULT CHARSET=utf8;
上述代碼創建了一個名為“test”的表,包含id、datetime和timestamp三個字段,其中datetime的數據類型為DATETIME,timestamp的數據類型為TIMESTAMP。
需要注意的是,DATETIME和TIMESTAMP的區別在于存儲方式和精度的不同,DATETIME占用8個字節,可以存儲的時間范圍為“1000-01-01 00:00:00”到“9999-12-31 23:59:59”,精度為秒;而TIMESTAMP占用4個字節,可以存儲的時間范圍為“1970-01-01 00:00:01”到“2038-01-19 03:14:07”,精度為秒或微秒。
上一篇css gif不循環