在MySQL中,我們可以使用日期和時間相關的函數,來進行時間范圍的判斷。
# 當前日期和時間 SELECT NOW(); # 當前日期 SELECT CURDATE(); # 當前時間 SELECT CURTIME(); # 指定日期加上時間 SELECT DATE_ADD('2022-01-01', INTERVAL '01:02:03' HOUR_SECOND); # 時間戳轉日期時間格式 SELECT FROM_UNIXTIME(1641868800); # 日期時間格式轉時間戳 SELECT UNIX_TIMESTAMP('2022-01-11 08:00:00');
使用以上函數,我們可以進行各種時間范圍的判斷,例如以下情況:
# 查詢從2022年1月1日0點到1月10日23點之間的訂單數量 SELECT COUNT(1) FROM orders WHERE created_at >= '2022-01-01 00:00:00' AND created_at<= '2022-01-10 23:59:59'; # 查詢當天已經過了的訂單數量 SELECT COUNT(1) FROM orders WHERE DATE_FORMAT(created_at, '%Y-%m-%d') = CURDATE(); # 查詢最近7天的訂單數量 SELECT COUNT(1) FROM orders WHERE created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY); # 查詢上個月的訂單數量 SELECT COUNT(1) FROM orders WHERE created_at >= DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00') AND created_at< DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00');
以上示例代碼可以幫助我們更好地理解MySQL中時間范圍的判斷,也可以根據需求進行適當的改動。