2016-12-22 16 views
0

私は過去30日間の日付しか表示しません。私のSQLコマンドのために。私はstatement_to_dateと呼ばれるDATETIMEフィールドを持っており、私はstatement_to_dateの過去30日間のすべての列を検索したいと思います。ここで私がこれまで持っているものです。過去30日間にSQL日付を表示するにはどうすればよいですか?

SELECT Statement_TO_DATE, STATEMENT_FROM_DATE 
    FROM claim; 
SELECT DATE_ADD(NOW(), INTERVAL -30 DAY) 

私は間隔がある場合、私はStatement_TO_DATEを差し込むことができると思ったが、それは働いていません。何か案は?

+2

ことがw2schoolsが教えている場合、それは単純に間違っている質問 – GurV

+0

更新@GurwinderSingh – Mdjon26

答えて

0

w3schoolsから、DATE_ADD()が正しく使用されていないことがわかります。またGordon Linoffのような をしてみてください、あなたはWHERE句が欠落していると述べた:

SELECT Statement_TO_DATE, STATEMENT_FROM_DATE 
FROM claim 
WHERE statement_to_date >= DATE_ADD(day, -30, GETDATE()); 
+0

であなたのRDBMSにタグを付けてください。 –

+1

上記の構文を試しましたか?テーブル名 'claim'の後のセミコロン'; 'は、文の終端文字なので、' Where'句でエラーが発生します。 –

+0

@WEI_DBAあなたが正しいです、私はそれを修正しました、ありがとう! –

0

あなたはwhere句不足している:

SELECT Statement_TO_DATE, STATEMENT_FROM_DATE 
FROM claim 
WHERE statement_to_date >= DATE_ADD(NOW(), INTERVAL -30 DAY); -- assumes the value is never in the future 

通常、日付でのタイムスパンで作業する場合、あなたはしたくないし現在の日付の時間成分。だから、これはより一般的です:あなたは、負の時間間隔をしたくない場合は、MySQLはまた、DATE_SUB()を持っていることを

SELECT Statement_TO_DATE, STATEMENT_FROM_DATE 
FROM claim 
WHERE statement_to_date >= DATE_ADD(CURDATE(), INTERVAL -30 DAY); 

注意。

-1

セレクトDATEADD(月、-1、GETDATE())

+0

回答を投稿している場合は、回答をサポートするコメントを追加する必要があります。 –

関連する問題