2

1週間(または多くの)1週間(7日)以降に作成されたすべての結果をmySQLで見つけるためのソリューションを探しています。

私はこれを試しましたが、週に複数の結果があるため、結果が間違っている場合があります。

SELECT *
FROM `datatable`
WHERE MOD(TIMESTAMPDIFF(DAY,UNIX_TIMESTAMP(created),NOW()),7)=0;
  • created はタイムスタンプです。

返信ありがとうございます。

4

3 に答える 3

1

これを試して:

SELECT 
    *
FROM 
    `datatable`
WHERE 1 
    AND `created` >= DATE_FORMAT(NOW() - INTERVAL 7 DAY,'%Y-%m-%d 00:00:00')
    AND `created` <= DATE_FORMAT(NOW() - INTERVAL 7 DAY,'%Y-%m-%d 23:59:59')
于 2013-04-17T08:37:11.653 に答える
0
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

引数なしで呼び出された場合、Unix タイムスタンプ ('1970-01-01 00:00:00' UTC からの秒数) を符号なし整数として返します。UNIX_TIMESTAMP() が日付引数で呼び出された場合、引数の値を '1970-01-01 00:00:00' UTC からの秒数として返します。日付は DATE 文字列、DATETIME 文字列、TIMESTAMP、またはYYMMDD または YYYYMMDD 形式の数値。サーバーは、日付を現在のタイム ゾーンの値として解釈し、UTC の内部値に変換します。クライアントは、 http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.htmlで説明されているようにタイム ゾーンを設定でき ます。

したがって、 function を使用しないUNIX_TIMESTAMP()で、 simple DATE().

于 2013-04-17T08:25:31.287 に答える