在MySQL 中組合日期欄位進行比較
在具有基於日期的搜尋過濾器的應用程式中,使用資料庫模式可能具有挑戰性將日期元件儲存在單獨的日、月和年欄位中。本文示範如何組合這些欄位並建立一個日期物件以與使用者指定的日期範圍進行比較。
考慮以下「日期」表結構:
CREATE TABLE `date` ( `deposition_id` varchar(11) NOT NULL default '', `day` int(2) default NULL, `month` int(2) default NULL, `year` int(4) default NULL, PRIMARY KEY (`deposition_id`) );
建構一個日期根據這些字段,MySQL 提供了以下函數:
建立表示特定日期的日期對象,可以使用以下步驟:
使用MAKEDATE() 建立一個給定年份第一天的DATETIME 物件:
MAKEDATE(year, 1)
使用DATE_ADD()將月份加入DATETIME 物件:
DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH)
最後,使用下列指令將日期加入DATETIME 物件DATE_ADD():
DATE_ADD(..., INTERVAL (day)-1 DAY)
SELECT * FROM `date` WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY) BETWEEN '2013-01-01' AND '2014-01-01';
以上是如何在 MySQL 中組合單獨的日、月和年欄位來執行日期範圍比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!