2016-08-05 3 views
0

Oracle의 내 db에 날짜 테이블이 있습니다. 내가 쿼리를 실행할 때 '01 -05-2015 '로 날짜 형식을 얻었지만 BIRT에서 비슷한 쿼리를 실행하면 날짜 형식이 '01-MAY-2015 12:00 AM'이됩니다. 날짜 필드의 데이터 유형을 날짜로 유지하여 날짜 형식을 dd/mm/yyy로 가져 오는 방법은 무엇입니까?오라클 가져 오기의 날짜 형식 특정 범위의 날짜

여기 내 데이터베이스의 샘플입니다.

또한
EQ_DT 
05-07-2015 
06-06-2015 
15-02-2015 
19-09-2015 
28-12-2015 

내 질문은 : 나는 유효한 이달의 오류를 얻고있다

select to_date(to_char(to_date(enquiry_dt,'DD/MM/YYYY'),'DD/MM/YY'),'DD/MM/YY') as q from xxcus.XXACL_SALES_ENQ_DATAMART where to_date(to_char(to_date(enquiry_dt,'DD/MM/YY'),'DD/MM/YY'),'DD/MM/YY')>'21-06-2012' order by q 

또한

+0

나는 birt date formatting에서 해결책을 찾아야한다고 생각한다. SQL과 oracle은 문제가 아니다. – Plirkee

답변

1

enquiry_dt 왜 당신이 날짜로 변환하려고 이미 날짜 열 인 경우 (그리고 다시 char와 date로)?

SELECT to_char(enquiry_dt, 'DD/MM/YYYY') AS q 
FROM xxcus.xxacl_sales_enq_datamart 
WHERE enquiry_dt > to_date('21-06-2012', 'dd-mm-yyyy') 
ORDER BY enquiry_dt 
0

보고서에 필드를 배치 할 때 필드 유형을 날짜로 설정하십시오. 그런 다음 해당 필드의 속성에서 날짜 시간을 형식화하고 마지막으로 해당 필드에 대해 원하는 날짜 형식을 지정하십시오.

0

항상은 BIRT에 대한 문자열로서 알려진 날짜 형식을 사용하여 전달 날짜 매개 변수를 사용합니다. 이것은 보고서 매개 변수 및 DataSet 매개 변수 용입니다.

그런 다음, 쿼리 내에서,이 같은 날짜로 변환 :

with params as 
(select to_date(pi_start_date_str, 'DD.MM.YYYY') as start_date_incl, 
     to_date(pi_end_date_str, 'DD.MM.YYYY') + 1 as end_date_excl 
    from dual 
) 
select whatever 
from my_table, params 
where (my_table.event_date >= params.start_date_incl 
     and 
     my_table.end_date < params.start_date_excl 
    ) 

이 하루 중 시간 관계없이 작동합니다. 이렇게하면 2016 년 1 월에 대한 모든 이벤트를 선택하려면 검색어 매개 변수 '01 .01.2016 '과 '31 .01.2016'을 전달할 수 있습니다. 여기에서 독일어 날짜 형식을 사용하고 있습니다.