简单数据范围的MYSQL查询

时间:2013-01-13 07:51:51

标签: php mysql

我是mysql编码的新手,所以请帮助。

我有一个简单的数据库,其中包含一个名为history的表,用于在日期中存储数据。

该表称为历史记录,其中包含“user”,“data”和“creation”的列名称,即日期。 “创造”中的数据标记就像这样的“2013-01-13 07:45:49”

我用PHP尝试了一些非常基本的东西,我得到了数据,例如: $ result = mysql_query(“SELECT data FROM history 用户='705'“);

将显示来自用户“705”的所有数据

但是,如何仅在特定数据范围内为用户705选择相同的数据?例如,只显示上周的数据?或任何日期范围...

顺便说一下,“数据”只是像“88993”这样的数字,所以在我当前的查询中,我得到了一长串的数字。我只想按日期缩小选择范围。

帮助表示赞赏。感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

上周试试这个:

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

你也可以用“1个月”,“2个月”,“1年”替换“1周”,然后......