1

私はかなり複雑なデータベースを持っており、さまざまなものに対してさまざまなテーブルがロードされており、そのすべてにタイムスタンプがあります (YMD h:m:s 形式)

SQL クエリを特定の期間 (たとえば 1 週間前) の結果のみに制限する方法はありますか?

必要に応じて、これらのタイムスタンプを unix に変換する関数があります。

sqlToUnix($date);
//returns $unixTime

たとえば

mysql_query(SELECT id FROM entries WHERE entries.date >= $formattedDateString);

ありがとう!

データベースの日付の形式は次のとおりです: 2009-02-15 08:47:45

4

3 に答える 3

4

これは BETWEEN ステートメントで完全に可能です (MySQL 4.0 以降):

mysql_query("SELECT id FROM entries WHERE entries.date BETWEEN 'Y-M-D h:m:s' AND 'Y-M-D h:m:s'");

また、現在の日付の 1 週間前のタイムスタンプを計算するには、MySQL オンライン ドキュメントを参照してください。

于 2009-02-15T12:56:48.030 に答える
1

私自身はMSSQLユーザーですが、オンラインで検索すると、MySQL5.0に関する有用な情報がいくつか表示されます...

curdate()
date_add()

これにより、次のようなWHERE句を作成できるようになります...

WHERE
   <field> >= date_add(curdate(), INTERVAL -7 DAY)

他の場所で説明したように、フィールドが文字列の場合は、STR_TO_DATE()を使用して日付に変換します

于 2009-02-15T14:41:47.917 に答える
0

はい、あなたが書いたように、出力の制限よりも大きくしたり小さくしたりできます。問題はどこだ?

フィールドがタイムスタンプ/日時フィールドではなく文字列の場合は、MySQL 関数 STR_TO_DATE() ( http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html )を使用します。

于 2009-02-15T12:55:10.357 に答える