2013-01-13 95 views
0

即時通訊編程新的MySQL,所以幫助,將不勝感激。MYSQL查詢的簡單數據範圍

我有一個簡單的數據庫,其中包含一個名爲history的表,它將數據存儲在日期中。

該表稱爲歷史記錄,並且有一個用於「用戶」,「數據」和「創建」(即日期)的列名稱。 「創建」中的數據戳記就像這樣「2013-01-13 07:45:49」

我嘗試了一些非常基本的東西用PHP和我得到的數據,例如: $ result = mysql_query(「SELECT data FROM歷史 WHERE user ='705'「);

將會顯示來自用戶的所有數據「705」

但我怎麼會只在特定的數據範圍選擇用戶705相同的數據?例如只顯示上週的數據?或任何日期範圍...

「數據」的方式只是像「88993」這樣的數字,所以用我目前的查詢我得到一個長長的數字列表。我只想按日期縮小我的選擇範圍。

幫助表示讚賞。之間由於

回答

2

嘗試日期..

select * from yourtable 
where userid =785 
and date between yourdate1 and yourdate2 
; 

您可以使用interval指定日期的差距,你需要:

select * from yourtable 
    where userid =785 
    and date between '2013-01-13 07:45:49' 
    and '2013-01-13 07:45:49' interval -10 day 
    ; 

試試這個基礎上你最後的評論:

select * from yourtable 
     where userid =785 
     and creation between Now() 
     and Now() interval -7 day 
order by creation 
limit 7 
; 

參考:you may check all date time functions here

+0

@ nibb11試試這個,並請發表評論。 :) – bonCodigo

+0

感謝您的回覆,但這是行不通的:$ result = mysql_query(「select history from history where user ='705' and date between'2013-01-13 08:02:5'2 and'2013 -01-13 08:00:51'「); – nibb11

+0

MYSQL是否只有一個數字查詢?就像*顯示了所有內容,難道只拉最後7條記錄並不容易,這將是一個星期,就像拉7而不是所有東西一樣。當然日期會更好,但我似乎沒有得到它的工作。 – nibb11

0

上週試試這個:

select data from history 
where (user='705') AND (date between date_sub(now(),INTERVAL 1 WEEK) and now()); 

也可以代替 「1周」 改爲 「1個月」, 「2月」, 「1年」,並...

+0

對不起,但是這段代碼什麼也沒有返回,我也不明白你爲什麼要在這個例子中關閉查詢;如果它甚至沒有像這裏一樣嘮叨:http://www.w3schools.com/php/php_mysql_select.asp本教程中的代碼對我來說都很好,這意味着它們在PHP中是有效的。 – nibb11

+0

我編輯了我的答案,試試這個。正如在這個文件中說http://dev.mysql.com/doc/refman/5.0/en/entering-queries.html你可以用分號結束你的查詢... –