0

mysqlコーディングは初めてなので、助けていただければ幸いです。

データを日付に格納する history というテーブルを持つ単純なデータベースがあります。

このテーブルは履歴と呼ばれ、日付である「ユーザー」、「データ」、および「作成」の列名があります。「作成」のデータスタンプは「2013-01-13 07:45:49」のように

PHP で非常に基本的なことをいくつか試してみたところ、次のようなデータが得られました。

ユーザー「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 に答える