2012-02-03 25 views
0

は、私は、3種類のクエリ記述する必要が2012-02-1.iこの形式のデータベーステーブルの日付フィールドがあります。MySQLの日付関数

)私は日付が今日の間にあるすべてのフィールドを取得する必要があります前の5日間。
b。)今日の日付から5日以上経過したすべてのフィールドを取得する必要があります。
c。) '5日前'から'30日前 'の間の日付のフィールドをすべて取得する必要があります

inbuilt mysql関数を使用できますか?

SELECT fields 
FROM table 
WHERE date >= CURDATE() - 5 

またはこの

の間、または句を使用してのような何か:以下のクエリを操作

。私は正しい構文を取得していません。

SELECT p.status,p.downpayment_date,p.policy_id,i.id,i.policy_type,i.carrier,i.policy_nu‌​mber,i.client_id,c.id,c.client_name FROM pdp_payment AS p,pdp_policy_info AS i,pdp_client_info AS c WHERE p.policy_id=i.id AND i.client_id=c.id AND (((p.status='close pending') OR (p.status='Cancel')) AND (p.downpayment_date BETWEEN ((INTERVAL 5 DAY AND CURDATE()) - (INTERVAL 30 DAY AND CURDATE())))) 
+0

それはデータtype..itがDate型のある日時ではありません。

は、あなたがしたい範囲を取得します。 – Micheal

+0

へようこそStackOverflow:コード、XML、またはデータサンプルを投稿する場合は、テキストエディタでこれらの行を強調表示し、エディタツールバーの「コードサンプル」ボタン(「{}」)をクリックして、それを強調する構文! –

答えて

0

日を他の問題をうまくすることができます。

SELECT fields FROM table 
WHERE date_field BETWEEN CURRENT_DATE - INTERVAL 5 DAY AND CURRENT_DATE 

日付は前の5日間より小さい。

SELECT fields FROM table 
WHERE date_field < CURRENT_DATE - INTERVAL 5 DAY 
0

今日と過去5日間の間のすべてのフィールドについて。

 

SELECT fields 
FROM table 
WHERE your_date_field_name BETWEEN CURDATE() - INTERVAL 5 DAY AND CURDATE() 
 

あなたは同様の方法で、今日と前の5日の間

+0

上記のクエリは論理的に正しいですか。私は構文エラーが発生しています。私がトップに投稿したもの – Micheal

0

dateあなたはフィールド名としてそれを使用するときに、そうあなたがパースエラーになりますバッククォート`で囲む必要があり、キーワードです。

WHERE `date` BETWEEN DATE_ADD(NOW(),INTERVAL -30 DAY) AND DATE_ADD(NOW(),INTERVAL -5 DAY) 
+0

はい、私は日付部分を得ました。しかし、私は構文の間に得ることができません。例えば、 。私は '5日前'から'30日前 'の間に日付が欲しい – Micheal

+0

編集の回答を参照してください。 –