0

我有一张自 2012 年以来的数据表。我需要31 days backgiven 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 回答