MySQLi使用CURDATE

时间:2017-06-28 06:23:55

标签: mysql sql

我正在尝试调整我在第一个实例中没有编写的代码。

目前,当前代码会检索下个月事件的结果并列出它们。我需要让他们展示未来12个月即将举行的活动。

目前的代码如下:

$current_events = $pdodb->prepare("
    SELECT * FROM events
    WHERE date_format(`start_date`, '%Y-%m') = date_format(now(), '%Y-%m') 
    AND end_date >= CURDATE() AND released = 'Y'"
);

我想我需要调整 CURDATE(),使其看起来像(CURDATE(),INTERVAL + 1年)

但是我尝试的每一件事都不起作用,而且我没有太多运气阅读。

2 个答案:

答案 0 :(得分:0)

假设日期范围"即将发生" 事件"接下来的12个月"是一个......

  • "现在" "现在12个月后有start_date"
  • "现在" "现在12个月后有end_date"

并假设您在start_date之前确定end_date 总是的约束,请尝试...

SELECT * FROM `events`
WHERE `released` = 'Y'
AND `start_date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 12 MONTH)
AND `end_date` BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 12 MONTH) 

如果end_date不重要,那么只需省略最后一个条款。这将为您提供从未来12个月开始的所有活动。

答案 1 :(得分:0)

您可以使用逻辑WHERE start_date >= DATE_SUB(NOW(), INTERVAL 12 MONTH) 这将为您提供start_date从现在到12个月的所有事件。