documentation에서 BST는 Bering Standard Time을 말하며 영국 서머 타임이 아닙니다. Bering Standard Time은 UTC-11이므로 예상대로 결과가 나옵니다.
NEW_TIME 함수는 위 문서에 지정된 제한된 시간대 만 사용할 수 있습니다. 그리니치 표준시를 영국령 서머 타임으로 변환하려면 을 사용해야합니다. '유럽/런던'시간대를 사용해야합니다.
select (cast(your_date as timestamp) at time zone 'GMT') at time zone 'Europe/London'
from dual;
그래서 쿼리가 될 것
SQL> select
(cast((TRUNC(SYSDATE) + 20/24 + 21/1440) as timestamp) at time zone 'GMT') at time zone 'Europe/London',
to_char((cast((TRUNC(SYSDATE) + 20/24 + 21/1440) as timestamp) at time zone 'GMT') at time zone 'Europe/London','hh24:mi')
from dual;
(CAST((TRUNC(SYSDATE)+20/24+21/1440)ASTIMESTAMP)ATTIMEZONE'GMT')ATTIMEZONE' TO_CH
--------------------------------------------------------------------------- -----
14-MAY-14 09.21.00.000000 PM EUROPE/LONDON 21:21