MySQL 5.7 版本引入了時間段限定,它是一種新的 SQL 語法,能夠在 WHERE 子句中使用。
這種語法非常有用,因為它能夠根據時間來限制返回結果的數量。較早的 MySQL 版本中,必須使用日期和時間函數來實現這個目標。
-- 使用日期和時間函數實現時間段限定 SELECT * FROM `orders` WHERE `order_date` BETWEEN DATE('2018-10-01') AND DATE('2018-10-31');
然而,在 MySQL 5.7 中,你可以使用更簡單的時間段限定語法:
-- 使用時間段限定語法 SELECT * FROM `orders` WHERE `order_date` >= '2018-10-01' AND `order_date`<= '2018-10-31';
這兩個查詢語句都返回在 2018 年 10 月份內發生的訂單。
然而,兩者之間的差異在于 MySQL 5.7 中的時間段限定語法更簡單、更直觀。
為了說明這種語法的效果,你可以使用一些數據:
CREATE TABLE `orders` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `customer_id` INT(11) DEFAULT NULL, `order_date` DATE DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO `orders` (`id`, `customer_id`, `order_date`) VALUES (1, 1, '2018-10-01'), (2, 2, '2018-10-02'), (3, 1, '2018-10-03'), (4, 2, '2018-10-04'), (5, 3, '2018-11-04');
如果你運行以下查詢:
SELECT * FROM `orders` WHERE `order_date` >= '2018-10-01' AND `order_date`<= '2018-10-31';
它會返回所有在 2018 年 10 月份內發生的訂單,包括 ID 為 1、2、3、4 的訂單。
使用時間段限定語法,可以大大簡化你的查詢,使你的代碼更加易于維護和理解。
下一篇css導航如何橫向排列