私は数日前に、この種の日付比較を 5 日以内に表示することについて投稿しました
http://www.oso.com.cn/forum/read.php?theme_id=7459
主な議論は SELECT に焦点を当てることです何か FROM table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) < 長い間試しましたが、結果はまだ間違っていました。今日、MYSQL 関数を確認しました。あえて自分だけに留めておきたくないので、皆さんの研究のために投稿します(技術的な内容はそれほど高くありませんが、私に投げないでください(笑))
MYSQL の TO_DAYS(DATE) 関数は次のように説明されています。 DATE から AD 0 までの合計日数を返します。テストしました
mysql>select to_days(now(0));
+---------- -----+
(今())
+ ------------------------+
| ------ ---------+
出てくるのは、現在時刻から西暦0年までの合計日数です。上記のステートメントを使用してテストします。
mysql>select TO_DAYS(NOW()) - TO_DAYS(date_col) < 結果は次のように表示されます:
ERROR 1054:Unknown columns 'date_col' in 'field first'
この方法は次のとおりです。ブロックされているので、第 5 世代を date_col に直接入れてみました
mysql>select to_days(now()) - to_days(5); 結果は次のようになります:
+-------------- -------------+
|to_days(now()) - to_days( 5)| -----+
|
+---------- -----+
え?とんでもない?これもうまくいきませんか?
次にコマンド
mysql>select を試します。 。 。 。
突然、to_days(now()) は整数を生成するのに、直接整数を操作できるのに、なぜわざわざ to_days(date) をもう一度実行する必要があるのかと思いました。今すぐ試してください
mysql>select to_days(now()) - 5;
+---------------+
| ( )) -5 |
+---------------+
+---------- - ----------------+
OK、万歳、ついに望んでいた結果が得られました。笑、以下は PHP コードの SELECT クエリです。
私の保存習慣です。データベースは NOW() を使用して直接割り当てられます。表示するときにフォーマットする必要はありません。
以下は私のライブラリの 1 つである
CREATE TABLE infomess (
infoid) の構造の一部です。 int(11) NOT NULL auto_increment、
topic varchar (255) NOT NULL、
……
email varchar(50)、
dateandtime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL、
主キー ( infoid)
);
DATEANDTIME は標準の日付形式であり、5 日以内のレコードをクエリしたいのは次の SQL クエリ ステートメントです
。
http://www.bkjia.com/PHPjc/632395.html
www.bkjia.com
本当