我正在构建以下查询,但遇到语法问题:
SELECT FORMAT(yrs_served * 365, 0) AS days_served,
ADDDATE(date_comm, INTERVAL days_served DAY(DATE_FORMAT(CONCAT_WS('-', yr_comm, mth_comm, day_comm), %Y-%m-%d) AS date_comm) AS left_office
FROM prime_minister JOIN ministry
;
可以看出,我首先尝试将 CONCAT_WS 三个值转换成一个日期,然后使用 DATE_FORMAT 将其格式化为日期,这样我就可以使用 ADDDATE 向该日期添加天数。
不对的地方请指教,谢谢!
最佳答案
您不能在定义的同一级别上使用 ALIAS
。
SELECT FORMAT(yrs_served * 365, 0) AS days_served,
ADDDATE(CONCAT_WS('-', yr_comm, mth_comm, day_comm), INTERVAL (yrs_served * 365) DAY) AS left_office
FROM prime_minister JOIN ministry.....
如果你不想使用它,你只需将它包装在一个子查询中,例如
SELECT days_served,
ADDDATE(date_comm, INTERVAL days_served DAY) AS left_office
FROM
(
SELECT FORMAT(yrs_served * 365, 0) AS days_served,
CONCAT_WS('-', yr_comm, mth_comm, day_comm) as date_comm
FROM prime_minister JOIN ministry.....
) s
关于MySQL 添加、DATE_FORMAT 和 CONCAT_WS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14544938/