2016-04-01 77 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