2012-08-22 32 views
5

在那裏我有idstart_dateend_dateday_countday_type我有一臺名爲DATAS。
其中id是主鍵,start和end_date是datetime,day_count是int,day_type是varchar。 現在day_type存儲日,周,月作爲值時,用戶提出請求和日期字段舉行天數1至60.Mysql的DATE_ADD間隔與MySQL表中的字段

現在我想用戶這個計數和鍵入date_add mysql內置函數。

我試圖通過它如下,但其顯示錯誤。

SELECT 
datas.day_count, 
datas.day_type, 
MIN(datas.start_date) AS MinDate, 
MAX(datas.end_date) AS MaxDate, 
DATE_ADD(MaxDate,INTERVAL datas.day_count datas.day_type) AS ExactDate, 
datas.trade_service_id 
FROM datas 

埃羅是 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datas.day_type)) AS ExactDate, datas' at line 13 請小提示將是巨大的。

+1

請編輯該問題並添加您收到的錯誤。 – walrii

+2

same as http://stackoverflow.com/questions/888971/how-to-use-a-string-column-value-as-a-mysql-date-interval-constant-day-month – Barmar

回答

7

這個查詢在MySQL中有效,但是你真的想要在沒有Group的情況下輸出什麼?

SELECT 
datas.day_count, 
datas.day_type, 
MIN(datas.start_date) AS MinDate, 
MAX(datas.end_date) AS MaxDate, 

start_date, min(start_date) as min_date, 
case day_type 
    when 'MONTH' then DATE_ADD(MAX(datas.end_date),INTERVAL datas.day_count MONTH) 
    when 'DAY' then DATE_ADD(MAX(datas.end_date),INTERVAL datas.day_count DAY) 
end as ExactDate, 

datas.trade_service_id 
FROM datas 
+2

thanx多數民衆贊成在工作和我得到我想要的。 –

+0

正是我需要知道的,我不能使用字段作爲區間類型。 CASE可以很好地替代。 – DaveK