2014-02-21 2 views
0

나는 UTC 시간에서 현지 시간으로 변환 할 수있는 코드를 작성했지만, 전달하는 시간은 더미 값이므로 표준 시간대도 있습니다. 실제 데이터로 작업 할 수 있기를 원하지만 결합하는 방법을 모르겠습니다. 아마도 하위 쿼리일까요?표준 시간대 변환 조인 데이터 테이블 SQL

는 '17 -FEB-14 04.00.00.000000000 PM '과'미국/뉴욕 '대신에
Select From_Tz(Cast(To_Timestamp('17-FEB-14 04.00.00.000000000 PM', 
'DD-MON-YY HH.MI.SS.FF9 AM') As Timestamp), 'UTC') 
At Time Zone 'America/New_York' As "Local Time" 
FROM DUAL; 

, 내가 반환 된 값을 전달하고 싶습니다 : 여기

시간대 변환을위한 내 쿼리입니다 다음 쿼리에서 : 당신은 단지 가능성, 당신은 max() 하위 쿼리 또는 필요하지 않습니다 보인다 ID에 대한 테이블의 한 레코드가있는 경우

Select s.Max(Date), time.Local_Time_Zone from Sales s 
join on s.customer_ID = time.customer_ID 
where s.customer_ID = 122; 

답변

0

, 당신은 그냥 테이블에서 직접 선택할 수 있습니다, like :

select from_tz(cast(date_field as timestamp), 'UTC') 
    at time zone customer_time_zone as "Local Time" 
from customer_table; 

또한 '날짜'입력란이 실제로 DATE이고 아직 TIMEZONE이 아니라고 가정합니다.하지만 이는 완전히 명확하지 않습니다.

select to_char(from_tz(cast(max(s.date_field) as timestamp), 'UTC') 
    at time zone t.local_time_zone, 'YYYY-MM-DD HH24:MI:SS') as "Local Time" 
from sales s 
join time t on t.customer_id = s.customer_id 
group by s.customer_id, t.local_time_zone; 
: 업데이트 된 질문을 바탕으로

select to_char(from_tz(cast(date_field as timestamp), 'UTC') 
    at time zone customer_time_zone, 'YYYY-MM-DD HH24:MI:SS') as "Local Time" 
from customer_table; 

LOCAL TIME 
------------------- 
2014-02-16 19:00:00 

SQL Fiddle


이 교장은 동일합니다, 당신은 단지에 참여하는 두 개의 테이블이 있습니다 표시 서식

SQL Fiddle.

+0

죄송합니다. 진술을 지나치게 단순화하려고했습니다. 표준 시간대와 날짜는 서로 다른 두 테이블에서 가져온 것으로 서로 연결됩니다. 내가 명확히하기 위해 원래 게시물을 수정했습니다. – user2242044

+0

@ user2242044 - 같은 생각; 귀하의 조인 사용에 대한 답변을 업데이트했습니다. –