TIMESTAMP 類型字段與 CHAR 比較:
BEGIN
#Routine body goes here...
DECLARE rdToday CHAR(10) DEFAULT CURDATE();
DECLARE rdBegin CHAR(19) DEFAULT CONCAT(rdToday, '00:00:00');
DECLARE rdEnd CHAR(19) DEFAULT CONCAT(rdToday, '23:59:59');
SELECT mdc_ordertime FROM mz_drugrecipe WHERE mdc_ordertime BETWEEN rdBegin AND rdEnd;
END
TIMESTAMP 類型字段與 TIMESTAMP 比較:
BEGIN
#Routine body goes here...
DECLARE rdBegin TIMESTAMP DEFAULT CURDATE();
DECLARE rdEnd TIMESTAMP DEFAULT TIMESTAMPADD(SECOND, -1, DATE_ADD(CURDATE(),INTERVAL 1 DAY));
-- 或:
-- DECLARE rdToday CHAR(10) DEFAULT CURDATE();
-- DECLARE rdBegin CHAR(19) DEFAULT CONCAT(rdToday, '00:00:00');
-- DECLARE rdEnd CHAR(19) DEFAULT CONCAT(rdToday, '23:59:59');
SELECT mdc_ordertime FROM mz_drugrecipe WHERE mdc_ordertime BETWEEN rdBegin AND rdEnd;
END
實驗步驟:
都執(zhí)行 100000 次,第一種 CHAR 變量與 TIMESTAMP 類型字段比較,花費時間40s+, 第二種 TIMESTAMP(不論通過哪種構(gòu)造方式構(gòu)造)變量與 TIMESTAMP 類型字段比較,花費時間 30s+.
結(jié)論:
應(yīng)該將要比較的變量化為目標字段的類型 TIMESTAMP 后再進行比較.