Mysql DATE_ADD INTERVAL与mysql表字段

时间:2012-08-22 07:02:04

标签: php mysql

我有一个名为datas的表,我有idstart_dateend_dateday_countday_type
其中id是主键,start end_date是datetime,day_count是int,day_type是varchar。 现在day_type将DAY,WEEK,MONTH存储为用户发出请求时的值,而day field保存的天数为1到60天。

现在我想用这个计数并输入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
Erro是 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 个答案:

答案 0 :(得分: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