我的表格包含id
,date_from
,date_to
个文件。
我需要找到date_to +1 month等于条件
例如>
如果date_to
字段中的数据为2015-06-01
且WHERE
条件为2015-07-01
,我应该得到结果
SELECT *, (date_to + INTERVAL 1 MONTH) as 'next' FROM table_name WHERE 'next'='2015-07-01'
这是我的查询,显然不起作用;)
Tnx in adavance
答案 0 :(得分:1)
首先,你不能在where条件中使用别名,而且条件也是错误的。它将是
SELECT * FROM table_name
WHERE
date_add(date_to,interval 1 month)='2015-07-01'
现在请注意,对于大型数据集,在日期字段中使用函数不是一个好主意,因为即使该字段是索引,它也将无法使用索引。因此,最好使用要过滤的数据上的函数而不是字段上的函数。所以上面的查询可以写成
SELECT * FROM table_name
WHERE
date_to= date_sub('2015-07-01',interval 1 month)