2016-04-01 55 views
1

我创建了如下表:如何在MySQL中选择一个范围内的日期?

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

的问题是:如何从今天选择上一个日期到五一个月?

+3

'mysql,oracle,postgresql'。当真? – 1000111

+0

@ 1000111标题上写着“MySQL”,所以我删除了其他标签。 –

+0

*从今天起五个月前的日期*是什么意思? –

回答

0
SELECT * 
FROM example 
WHERE PERIOD_DIFF(date_format(now(), '%Y%m', date_format(date, '%Y%m')) <= 5 
+0

感谢您的回复,但我通过您的结构使用了另一个类似的查询。 – Python241820

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后的较高值。

+0

感谢您的回答 – Python241820

+0

欢迎您:) @ Python241820 – 1000111