2015-02-08 96 views
2

我有這樣的查詢:Mysql的只顯示第一行

SELECT * FROM bcl1_logs where created_at between '2015-02-07' and '2015-02-10' 

和表像這樣:

0 = "id":1, 
     "pc_name":"BCL101", 
     "created_at":"2015-02-07 22:25:44" 


2 = "id":2, 
     "pc_name":"BCL101", 
     "created_at":"2015-02-07 22:25:44" 

3 = "id":3, 
     "pc_name":"BCL101", 
     "created_at":"2015-02-10 22:25:44" 

當我詢問我的說法,這只是顯示前兩個'2014-02-07'日期的行,並且當我的查詢是BETWEEN日期'2014-02-07'和'2015-02-10'時,它不包括'2015-02-10'的日期。

回答

0

添加時間到你的查詢

SELECT * FROM bcl1_logs where created_at between '2015-02-07 00:00:00' and '2015-02-10 23:59:59' 
+0

有!像這樣簡單。謝謝 – user352156 2015-02-08 18:01:14

0

如果僅使用日期部分,時間部分被設置爲00:00:00。所以你的查詢看起來像

created_at between '2015-02-07 00:00:00' and '2015-02-10 00:00:00' 

而且不包括第三個記錄與時間22:25:44

變化:

created_at between '2015-02-07 00:00:00' and '2015-02-10 23:59:59' 
0

value between X and Y意味着value >= x AND value < y,所以'2015-02-10'被排除在外。如果你想使用between運營商,包括它,你需要添加額外的一天:

SELECT * 
FROM bcl1_logs 
WHERE created_at BETWEEN '2015-02-07' AND '2015-02-11' 
0

其他答案解釋,你是比較有日期和時間的日期問題,所以儘量在使用DATE()查詢:

SELECT * FROM bcl1_logs WHERE DATE(created_at) BETWEEN '2015-02-07' AND '2015-02-10'