0

2012年以降のデータを含むテーブルがあります。このテーブルのデータをから取得する必要があり31 days backますgiven date。だから私はデータを取得するために以下のクエリを書きました。

select ('[' || work_date || '] ' || field_name || ' - ' ||work_desc) d
from DAILY_WORK
where TO_CHAR(work_date,'DD/MM/YYYY') >= TO_CHAR(to_date('30-Jan-13','dd-MON-yyyy') - (31),'DD/MM/YYYY')
order by work_date desc

このクエリを実行すると、以下の日付のデータのみが返されます。

31-AUG-12
31-OCT-12
30-DEC-12
31-DEC-12

しかし、実際にはデータを取得する必要がありますfrom 2012-12-30 to 2013-01-30

どうすればこれを行うことができますか?

4

2 に答える 2

1

これを使って:

select ('[' || to_char(work_date, 'dd-MON-yyyy') || '] ' || field_name || ' - ' ||work_desc) d
from DAILY_WORK
where work_date >= to_date('30-Jan-2013','dd-MON-yyyy') - 31
order by work_date desc
于 2013-01-30T05:18:16.630 に答える
0

以下のクエリを使用できます。

select * from DAILY_WORK where work_date >= TRUNC(to_date('01-30-2013','MM/DD/YYYY')) - 31

使用しているツールの日付形式を確認してくださいツールごとに、使用している日付形式は「MM/DD/YYYY」です

このクエリは正しい結果を返します。確認できます。

于 2013-01-30T10:43:38.667 に答える