0

ユーザーが特にドロップダウンカレンダーを使用して日付を入力するデータベースがあり、日付形式はこの形式 21-NOV-2012 です。日付範囲でデータベースを検索する方法はありますか? 現在、次を使用して日付を検索しています::

sql ="SELECT * FROM ircb WHERE  date LIKE '%$term1%' AND date LIKE '%$term2%'  LIMIT $start_from, 15";

term1 は month で、term 2 は year です。これは、月のみの月内の日付範囲を許可しません。助けていただければ幸いです、ありがとう

4

3 に答える 3

2

これであなたの問題が本当に解決するわけではないことはわかっていますが、これはテストであり(データベースにアクセスできる)、より良いアプローチを教えることで炎上するリスクがあると思います。教えないと罪悪感を感じるからです。それを行う正しい方法は何でしょう:

データベースに日付型フィールドがあり (mysql だと思います)、そのフィールドに日付全体を格納する必要があります。mysql はその日付を使用して検索できます (通常、標準の日付形式は YYYY-MM-DD になります)。

あなたはただする必要があります:

SELECT * FROM TABLE WHERE date > 'your date';
or ........................... < 'your date';
or .................WHERE date BETWEEN 'date1' AND 'date2';

この種の操作を、はるかに簡単で人間が読める方法で行うことができます。

興味がある場合は日時も見てください。同じことができますが、その日の時刻も同じフィールドに含まれています! :D

データベースを健全で最適化することが不可欠であるため、フィールドの種類をよく見てください。

于 2012-11-22T15:25:48.393 に答える
0
 date >= '$term2-$term1-01' AND date < DATE_ADD( '$term2-$term1-01', INTERVAL 1 MONTH)
于 2012-11-22T15:18:40.900 に答える
0

これはうまくいくはずだと思います。

sql ="SELECT * FROM ircb WHERE date BETWEEN '$term1' AND '$term2' LIMIT $start_from, 15";

BETWEEN範囲の日付を取得できるようになり、それらを削除できますLIKE

于 2012-11-22T15:30:03.400 に答える