0

我是 mysql 编码的新手,因此将不胜感激。

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

该表称为历史记录,并且有一个列名为“用户”、“数据”和“创建”,即日期。“创造”中的数据戳是这样的“2013-01-13 07:45:49”

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

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

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

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

帮助表示赞赏。谢谢

4

2 回答 2

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
;

参考:您可以在此处查看所有日期时间功能

于 2013-01-13T07:54:43.823 回答
0

上周试试这个:

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

您还可以将“1 WEEK”替换为“1 MONTH”、“2 MONTH”、“1 YEAR”和...

于 2013-01-13T08:07:57.270 回答