2017-04-20 66 views
0

我正在努力與這一個,並得到一個語法錯誤。MySQL添加日期字段,並在今天比較到哪裏條款

試圖獲取仍在進行中的廣告系列,即start_date + duration_days>> =比今天更多。

我也試過用DATE_ADD得到相同的結果。

start_date是DATE字段,而duration_days是INT。

SELECT id,start_date,duration_days 
       FROM `myTable` 
       WHERE start_date + INTERVAL duration_days DAYS >= CURDATE() 

感謝

回答

1

變化的時間間隔,以每天不DAYS,這就是被扔錯誤。

SELECT id,start_date,duration_days 
      FROM `myTable` 
      WHERE start_date + INTERVAL duration_days DAY >= CURDATE() 
+0

謝謝@Niagaradad。像往常一樣,我認爲這很愚蠢。 – BernardA

0

您需要使用DATE_ADD和DATE_SUB功能來操作日期,而不是算術運算符:

SELECT id,start_date,duration_days 
FROM `myTable` 
WHERE DATE_ADD(start_date, INTERVAL duration_days DAYS) >= CURDATE() 
+0

其實算術運算符是允許的,問題是它應該是DAY而不是DAYS。 – Niagaradad

+0

謝謝,我的MySQL知識顯然有點過時了。我不知道 – JimNicholson