我有一张自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
。
我怎么能这样做?
答案 0 :(得分: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
答案 1 :(得分:0)
您可以使用以下查询:
select * from DAILY_WORK where work_date >= TRUNC(to_date('01-30-2013','MM/DD/YYYY')) - 31
检查日期格式您正在使用的工具根据工具我使用的日期格式是'MM / DD / YYYY'
此查询给出了正确的结果。您可以查看。