MySQL如何比較時間(datetime)大小
比較時間(datetime)大小
遇到一個業務功能需要將當前時間與數據庫中的會議開始、結束時間進行比較,記錄一下,方便下次用。
用unix_timestamp函數,將字符型的時間,轉成unix時間戳。
select meeting_id,meeting_name,start_time,end_time from meeting_data where meeting_id REGEXP '[0-9]{4}0001' and unix_timestamp(start_time) < unix_timestamp(NOW()) and unix_timestamp(end_time) > unix_timestamp(NOW());
mysql時間比較 — date和datetime
date 直接比較即可,yyyy-MM-dd
如上圖
date存入數據庫類型為 yyyy-MM-dd類型,可以直接進行比較。
datetime 特別註意。雖然寫sql使用的是 yyyy-MM-dd 但是mysql默認會添加 00:00:00 作比較。
比如 :
create_time 為 datetime時
以下sql隻能獲取到 30 號的數據
select * from ok where create_time between ‘2019-01-30' and ‘2019-01-31'
實際查詢如下
select * from ok where create_time between ‘2019-01-30 00:00:00' and ‘2019-01-31 00:00:00' .
如果精確為日期 需要使用 date_format 轉換函數 進行 格式化 後比較。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- MySQL中存儲時間的最佳實踐指南
- UTC時間、GMT時間、本地時間、Unix時間戳的具體使用
- pandas實現datetime64與unix時間戳互轉
- PostgreSQL timestamp踩坑記錄與填坑指南
- MySQL日期及時間字段的查詢