2017-06-09 14 views
0

現在の日付とレコードのエントリの日付の違いに基づいてwhere節を追加しようとしています。他にもいくつかの簡単な節がありますが、私は問題はありませんので、デモのデータをシンプルにして問題を浮き彫りにしています。where-clauseは現在の日付とレコードの日付に基づいて

デモデータセット:

Rec_no Rec_date  
77 20170606 
69 20170605 
55 20170601 
33 20170520 
29 20170501 

日付をYYYYMMDD形式で記録されていると私は、現在の日から数日前のX番号を作成しているだけのショーレコードにwhere句を構築したいのですが - 10を言うことができます。

この場合、レコード番号33と29のみを表示する必要があります。

実際のDBエンジンは不明ですが、IBMのものでなければなりません。

どうすればいいですか?

+1

日付をこのフォーマットに保存しないでください。 – Jens

+0

実行しようとしているクエリを共有できますか? –

+2

(1)データ構造を修正して、 'date'型を使って日付を保存してください。 (2)使用しているデータベースで質問にタグを付けます。どのエンジンを使用しているのか分からなければ、誰もできることはほとんどありません(IBMはDB2、Informix、Netezza、Verticaを販売しています。 –

答えて

0

コメントに示唆されているように、日付を正しいタイプで保存するようにスキーマを更新するのが最善の選択ですが、何らかの理由でこれが不可能な場合は、まず保存日を正しいものに変換する必要があります実行時にフォーマットします。

私が知っているように、t-sqlに例を書きます。 dbmsを編集したら、関連する関数/構文に編集することができます。

Select * 
FROM Demodataset 
WHERE Cast(Rec_Date as datetime) >= dateadd(day,-10,getdate()) 
+0

は '='ではなく '> ='であってはなりませんか? –

+0

@PrabhatG質問が10日未満前に作成されたと言われていますが、質問はx日前に作成されたレコードの前に – MarkD

+1

OPは 'レコード33と29のみ表示する必要があります'と言う、 –

関連する問題