我创建了下表:
create table example
(
code varchar(7),
date date,
CONSTRAINT pk_date PRIMARY KEY (code)
);
我插入了数据:
insert into example(code, date)
values('001','2016/05/12');
insert into example(code, date)
values('002','2016/04/11');
insert into example(code, date)
values('003','2017/02/03');
问题是:如何选择之前的日期到今天的五个月?
答案 0 :(得分:1)
您可以使用BETWEEN
获取日期在以下范围内的所有数据:
[Five Months From Today, Today]
SELECT
*
FROM
example
WHERE `date` BETWEEN DATE_SUB(DATE(NOW()),INTERVAL 5 MONTH) AND DATE(NOW());
以防你不熟悉BETWEEN
。
SELECT 2 BETWEEN 1 AND 3';
结果: 1
(表示为TRUE)
SELECT 1 BETWEEN 2 AND 3;
结果: 0
(表示为FALSE)
警告:强>
虽然2介于1和3之间。但以下内容将返回0
。
SELECT 2 BETWEEN 3 AND 1;
结果: 0
(FALSE)
您应该使用AND
之前的较低值和AND
之后的较高值。
答案 1 :(得分:0)
SELECT *
FROM example
WHERE PERIOD_DIFF(date_format(now(), '%Y%m', date_format(date, '%Y%m')) <= 5