0

この質問のような質問と回答はたくさんありますが、MYSQL クエリで実際に使用するものは見つかりません。現在からテーブル内の日付までの特定の日数に基づいて、データベースにクエリを実行する必要があります。現在、mysql クエリで数学を実行する方法がありますが、開始方法がよくわかりません。

PHP と mysql でこれを行う方法について何か提案はありますか?

言及せずに申し訳ありませんが、私の日付フィールドは UNIX タイムスタンプです。では、そのフォーマットでそれを達成するにはどうすればよいですか?

4

3 に答える 3

2

フィールドに次のようなものを探していると思いますdatetime

SELECT *
FROM table
WHERE datetime_field BETWEEN (NOW() - INTERVAL 2 DAY) AND NOW()

日付フィールドのわずかな変更

SELECT *
FROM table
WHERE date_field BETWEEN (DATE(NOW()) - INTERVAL 2 DAY) AND DATE(NOW())

さまざまな理由から、UNIX タイムスタンプ フィールドを使用して日時を保存しないでください。しかし、あなたが本当にそのようにすることを主張するなら.

SELECT *
FROM table
WHERE date_field BETWEEN UNIX_TIMESTAMP(NOW() - INTERVAL 2 DAY) AND UNIX_TIMESTAMP(NOW()) 

句のフィールドにWHEREインデックスがあることを確認してください。

于 2012-09-13T20:04:49.507 に答える
1

DateDiff関数のようなものですか?

SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate

http://www.w3schools.com/sql/func_datediff_mysql.asp

$sql = "SELECT DATEDIFF('".$startDate."', '".$endDate."') AS DiffDate";

次に、PDO または mysqli_ 関数を介してそれを実行します。

于 2012-09-13T20:02:34.500 に答える
0

PHP では、次のようにすることができます。

$date1 = '1348117200000'; //From table for date 09/20/2012    

$date2 = time(); //Current time 

$diffDate = $date1 - $date2;    

次に、クエリで $diffDate を使用します。

 $sql = 'SELECT * FROM DATE_TABLE WHERE DATE_FIELD = ' . $diffDate;
于 2012-09-13T20:55:26.147 に答える