如何选择MySQL范围内的日期?

时间:2016-04-01 17:49:34

标签: mysql sql database dml

我创建了下表:

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');

问题是:如何选择之前的日期到今天的五个月?

2 个答案:

答案 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