2012-11-01 62 views
0

我一些書面方式調度代碼,檢查是否存在occuried Daily事件,WeeklyFortnightlyMonthlyMySQL查詢事件在過去14天(半月刊)

到目前爲止,我已經工作了怎麼辦DailyWeeklyMonthly但不Fortnightly。 我的表結構...

CREATE TABLE IF NOT EXISTS `event_log` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `export_schedule` int(11) NOT NULL, 
    `import_schedule` int(11) NOT NULL, 
    `exception` TEXT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

資源

例如說當前日期11-1-2012(11月1日)以及最後一個事件發生在10-20-2012(2012年10月20日)13天前如果我要查詢該事件,MySQL將返回MySQL returned an empty result set (i.e. zero rows). (Query took 0.0004 sec)。用我當前的查詢。

SELECT * FROM event_log WHERE MOD(DATEDIFF(date,CURDATE()),14)=0(來自當前雙週的事件)但它沒有得到任何結果。

如何查詢最近兩週內發生的事件?

回答

2

這應該做的伎倆:

SELECT * FROM event_log WHERE date >= DATE_SUB(NOW(), INTERVAL 14 DAY)

如果您確保有日期列的索引,該查詢將允許指數被用來保持事物快爲好。

+0

謝謝:)它的工作原理! :d – Killrawr

相關問題