6

我有一张名为 datas 的表,我有id, start_date, end_date, day_count, day_type.
主键在哪里id,开始end_date是日期时间,day_count是 intday_type是 varchar。现在 day_type 将 DAY、WEEK、MONTH 存储为用户提出请求时的值,并且 day 字段保存天数,例如 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

错误是 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 请一点提示会很棒。

4

1 回答 1

14

此查询在 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
于 2012-08-22T07:51:00.003 回答