【发布时间】:2015-10-28 12:47:16
【问题描述】:
我得到了这个表和数据如下图
CREATE TABLE events_calender (
company_name varchar(30) DEFAULT NULL,
reg_date varchar(20)
);
Insert into events_calender values('Childerse Event' , '30-Oct-2015');
Insert into events_calender values('Womens Event' , '05-Nov-2015');
Insert into events_calender values('Mens Event' , '02-Nov-2015');
Insert into events_calender values('DOlls Event' , '02-Oct-2015');
我想返回从当天到最近 7 天的数据(即将发生的事件)
这个方法我试过了
从 events_calender 中选择 * WHERE reg_date BETWEEN DATE(NOW()) AND DATE(DATE_ADD(NOW(), INTERVAL 7 DAY))
但即使有记录,实际上也没有返回任何数据
【问题讨论】:
-
错误的类型声明
reg_date varchar(20)应该是reg_date date -
谢谢,我无法更改数据类型,因为已经插入了很多数据,所以无论如何我可以在查询本身中修改
-
DATE( DATE_ADD( NOW() , INTERVAL 7 DAY ) ) 必须为 -7 DAY
-
您的小提琴与您的描述不符。在您的小提琴中,您有
reg_date timestamp并且查询会相应地工作。
标签: mysql