2012-03-28 11 views
0
Select from x 
    WHERE yid = rid 
    AND (h.test1 <=todaysdate) AND (h.test1>= 30 days from today) 

この行を書くにはどうすればよいですか今日からの30日間はクエリに含まれますか?代わりに私は今日の日付から1か月を置く。今日から30日を取得する方法

+1

30daysの差分を取得し、同じクエリを渡すためにDateDiff関数を使用します。 'DATEDIFFを選択してください(DAY、 '2012-03-21'、GETDATE())'これは整数の数字 – Murtaza

+2

を返します...待って、あなたは今日よりも早く、30日以上前に行を照会していますか? – McGarnagle

+0

良い点@dbaseman私はそれをはっきりとチェックしていませんでした.. – Murtaza

答えて

1

あなたが書くことができます:あなたはとにかくあなたの要求の確認

SELECT * FROM x 
WHERE yid=r=d 
     AND h.test1 <= todaysdate 
     AND h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY); 

ていますか?
は、あなたが(今日前または30日後の日付)の代わりにしたくない:ユーザーコメント後に編集

SELECT * FROM x 
WHERE yid=r=d 
     AND (h.test1 <= todaysdate 
     OR h.test1 >= ADDDATE(todaysdate, INTERVAL 31 DAY)); 

か(今日から今日と30日の間の日数)

SELECT * FROM x 
WHERE yid=r=d 
     AND h.test1 BETWEEN todaysdate AND ADDDATE(todaysdate, INTERVAL 31 DAY); 


MS SQLでは、あなたは使用することができます

SELECT * FROM x 
WHERE yid=r=d 
     AND h.test1 BETWEEN todaysdate AND DATEADD(dd, 30, todaysdate); 

または

SELECT * FROM x 
WHERE yid=r=d 
     AND h.test1 BETWEEN DATEDIFF(dd, 30, todaysdate) AND todaysdate; 

(私のコメントですでに述べたように)@dbasemanは正しい日を追加するための構文を教えてくれました。 Mineは、その構文を使用した正しいクエリです。ユーザーのコメントの後に再編集

:Oracleで今日の日付の

SELECT * FROM x 
WHERE yid=r=d 
     AND h.test1 BETWEEN DATEDIFF(dd, 30, NOW()) AND NOW(); 
+0

質問は、ここに?? – Murtaza

+0

@Murtaza:OPタグ付き質問SQL ...これはMS-SQLもMySQLも意味しません...私はmysqlの回答を与え、他のSQLは他のSQLを追加できます... :) – Marco

+0

今日から今日までの日付今日から – Vadz

3

どのSQLを知るのに役立つでしょうか。 MS SQLでは:MySQLで

dateadd(dd, 30, todaysdate) 
0


利用簡潔にするためBETWEENsysdate

SELECT * 
    FROM x 
WHERE yid = rid AND h.test1 BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + 30; 
+0

オラクルでは誰も答えを求めていません。必要に応じて回答してください。他の人を混乱させないでください。 – Murtaza

+0

@MurtazaのSQL Serverタグは、私が答えたその瞬間には存在せず、私はそれが動作しなければならないプラットフォームを知りませんでした。 これをoracleの方法でそれに置き換えました。 – cyborg007

+0

は2008年のSQLレポートと同じですか? – Vadz

関連する問題