0

この形式のデータベーステーブルに日付フィールドがあります2012-02-1.i3つの異なるクエリを作成する必要があります。

a。)日付が今日から過去5日間の間にあるすべてのフィールドを取得する必要があります。
b。)日付が今日の日付から5日より古いすべてのフィールドを取得する必要があります。
c。)「5日前」から「30日前」までの日付のすべてのフィールドを取得する必要があります

組み込みのmysql関数を使用できますか?

以下のクエリを操作します。

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

またはこのようなもの

またはbetween句を使用します。構文が正しくありません。

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()))) )
4

3 に答える 3

0

日付が今日から過去5日間の間にあるすべてのフィールド。


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

同様の方法で他の問題を解決することができます

于 2012-02-03T06:12:26.963 に答える
0

今日から過去5日間までの日付。

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
于 2012-02-03T06:43:50.173 に答える
0

dateはキーワードであるため、フィールド名として使用する場合は、バッククォートで囲む`必要があります。そうしないと、解析エラーが発生します。

必要な範囲を取得するには:

WHERE `date` BETWEEN DATE_ADD(NOW(),INTERVAL -30 DAY) AND DATE_ADD(NOW(),INTERVAL -5 DAY)
于 2012-02-03T06:49:01.690 に答える