在MySQL中使用DATE_ADD后选择列值的日期

时间:2017-02-06 13:02:19

标签: mysql

我的表中的订阅开始日期。我想提醒我的客户关于订阅的结束(10个月到1年之间是我的订阅者的警报期)

这是我的查询:

Range(1, 100000)

我试过几个小时,没有锻炼。有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

BETWEEN的操作数需要按顺序排列。因此,较小的值必须是第一个:

SELECT customer_name, start_date
FROM subscription
WHERE start_date between DATE_ADD(start_date, INTERVAL 305 DAY) and
                         DATE_ADD(start_date, INTERVAL 1 YEAR);

305天不到一年,所以需要先行。

答案 1 :(得分:0)

当您在SQL Query上使用 两个值时,您必须先向查询中添加一个。

SELECT customer_name, start_date FROM subscription 
WHERE start_date between DATE_ADD(start_date, INTERVAL 305 DAY) and DATE_ADD(start_date, INTERVAL 1 YEAR)

你试过这个查询吗?

答案 2 :(得分:0)

假设您记录了订阅的start_date,并且想要计算出今天 10到1年的订阅,那么start_date需要在1年之间从现在开始,从现在起10个月。

SELECT 
   customer_name, 
   start_date
FROM subscription
WHERE start_date BETWEEN 
   DATE_SUB(CURDATE(), INTERVAL 1 YEAR) AND
   DATE_SUB(CURDATE(), INTERVAL 305 DAY)