1

私はSQLクエリの一部を持っています。

この SQL クエリは他のクエリと何ら変わりはありませんが、唯一の違いは、それ?DATE1::?が Web ベースのレポート ツール用にカスタム構築されていることです。

つまり?DATE1::?、ユーザーはドロップダウン メニューから日付を選択できます。?DATE1::?次のようなクエリで日付を手動で使用または入力できます05-01-2012

where句は次のとおりです。

WHERE To_Date(to_char(B.startdatetime, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
  and To_Date(to_char(B.enddatetime, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')

ユーザーが 7 日を超える日付範囲を選択できないようにクエリを変更するにはどうすればよいですか?

4

2 に答える 2

1

この条件も追加

mysql

and To_Date(to_char(B.startdatetime, 'DD-MON-YYYY'))
     <= DATE_ADD(To_Date(to_char(B.enddatetime, 'DD-MON-YYYY')), INTERVAL -7 DAY)

オラクル

and To_Date(to_char(B.startdatetime, 'DD-MON-YYYY'))
     <= DateADD('dd' , -7, To_Date(to_char(B.enddatetime, 'DD-MON-YYYY')))  
于 2012-09-13T13:54:32.057 に答える
0

元のクエリの後で、ユーザーから選択した日付の差を取得することになりました。

これが元のクエリです

WHERE To_Date(to_char(B.startdatetime, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
  and To_Date(to_char(B.enddatetime, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')


上記の後にこの条件を追加します。

To_Date('?DATE2::?','MM/DD/YYYY') - To_Date('?DATE1::?','MM/DD/YYYY')<=7


最終クエリ。

WHERE To_Date(to_char(B.startdatetime, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
  and To_Date(to_char(B.enddatetime, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')
  and To_Date('?DATE2::?','MM/DD/YYYY') - To_Date('?DATE1::?','MM/DD/YYYY')<=7
于 2012-09-13T14:21:00.907 に答える