0

古いレコードを除外して、新しいレコードのみを表示したいと思います。アイデアは currentDate マイナス 2 年です。1 つのレコードは次のようになります (表 Symposium):

属性:

ID;Day;Month;Year;Firstname;Lastname;Symposium_title;Speakers;

記録

1;26;10;2012;Markus;Meier;Topic MySQL;5;
3;26;10;2011;Markus;Meier;Topic PHP;5;
6;26;01;2010;Markus;Meier;Topic CSS;5;

希望する出力

1;26;10;2012;Markus;Meier;Topic MySQL;5;
3;26;10;2011;Markus;Meier;Topic PHP;5;

小さなphpを実行して古いデータを除外することは簡単にできますが、mysqlを1つのコマンドで直接実行する方法があると確信しています。

このようなクエリ(これは単なる擬似コードです)

SELECT * FROM Symposium WHERE (current_data() - 2 Years);

注意: 日;月;年の属性は変更されません。この属性によって構築される 50 を超えるテーブルがあります。したがって、テーブルの変更はお勧めしません。

誰かが私を助けることができますか?

4

1 に答える 1

2

このタスクには、 STR_TO_DATE関数DATE_ADDを使用できます。

構文:

STR_TO_DATE(string, format)

だからあなたのコードでは:

SELECT * from Symposium
WHERE DATE_ADD(STR_TO_DATE(concat(Day,'-',Month,'-',Year),'%d-%m-%Y'), INTERVAL 2 YEAR) > NOW();

(残念ながら、現在MySQLを持っていないため、テストできませんが、非常に基本的なタイプミスがない限り、機能するはずです)

于 2012-10-26T07:54:53.223 に答える