Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何从SQL中的同一个表中的最近日期开始添加一年?_Mysql_Sql - Fatal编程技术网

Mysql 如何从SQL中的同一个表中的最近日期开始添加一年?

Mysql 如何从SQL中的同一个表中的最近日期开始添加一年?,mysql,sql,Mysql,Sql,因此,我创建了一个查询,从同一个表中的最近日期开始添加一年,如下所示: DATE_ADD(SELECT max(order_date) FROM order WHERE id_order = '$id', INTERVAL 1 YEAR) 但是它在SELECT附近给出了一个错误,子查询需要在它自己的括号中。但在这种情况下,最好将计算放在子查询中: (SELECT DATE_ADD(max(order_date), INTERVAL 1 YEAR) FROM order WHERE id_o

因此,我创建了一个查询,从同一个表中的最近日期开始添加一年,如下所示:

DATE_ADD(SELECT max(order_date) FROM order WHERE id_order = '$id', INTERVAL 1 YEAR)

但是它在SELECT附近给出了一个错误,子查询需要在它自己的括号中。但在这种情况下,最好将计算放在子查询中:

(SELECT DATE_ADD(max(order_date), INTERVAL 1 YEAR)
 FROM order
 WHERE id_order = '$id'
) as colname

子查询需要位于它自己的一组括号中。但在这种情况下,最好将计算放在子查询中:

(SELECT DATE_ADD(max(order_date), INTERVAL 1 YEAR)
 FROM order
 WHERE id_order = '$id'
) as colname

对日期的添加按天的顺序进行。因此,您只需要最新(最长)日期,并在其中添加365天:

SELECT
  MAX(order_date) + 365
FROM order

Widor公平地指出,这是一个基本的算术,所以没有考虑闰年。某些RDBMS区间算法也存在闰年错误。现在问题已经澄清为mysql,请参见Gordon Linoff使用DATE_ADD的回答,mysql间隔按天的顺序添加日期。因此,您只需要最新(最长)日期,并在其中添加365天:

SELECT
  MAX(order_date) + 365
FROM order

Widor公平地指出,这是一个基本的算术,所以没有考虑闰年。某些RDBMS区间算法也存在闰年错误。现在,问题已被澄清为mysql,请参见Gordon Linoff使用日期添加和mysql间隔的回答

请使用您使用的数据库标记您的问题请使用您使用的数据库标记您的问题这如何考虑闰年?这如何考虑闰年?