在工數據庫設計中,我們往往會在數據庫表中耦合該條紀錄的創建時間和更新時間字段,以方便查詢或排查問題。
在Mysql5.7及以上版本,我們可以使用其特性自動插入或更新這兩個字段,如下:
createAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
updateAt datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間'
第一個一句很好理解,我們把默認值設置爲CURRENT_TIMESTAMP,即當前時間戳,當我們添加記錄時,mysql會自動幫我們把該字段的值設置爲當前時間戳。
第二個語句表達的意思是,默認也爲當前時間戳,但當我們更新該條紀錄時,mysql會自動幫我們更新該字段爲更新紀錄時的時間戳。
那我們如何使用SQL語句根據這兩個字段來查詢數據呢,這時我們就需要使用mysql的DATE_FORMAT函數,示例SQL如下:
SELECT * FROM `表名` WHERE createAt BETWEEN DATE_FORMAT("2020-06-28 13:47:29",'%Y-%m-%d %H:%i:%s') AND DATE_FORMAT("2020-06-28 13:47:44",'%Y-%m-%d %H:%i:%s')
其中'%Y-%m-%d %H:%i:%s’ 表示需要格式化日期字符串的格式。
%Y-表示年
%m-表示月(1-12)
%d-表示日期(天)(1-31)
%H-表示小時(0-23)
%i-表示分鐘(0-59)
%s-表示秒(0-59)
這樣我們就可以根據這兩個字段來查詢數據了。