Oracle Date 데이터 유형, 'YYYY-MM-DD HH24:MI:SSTMZ' ~ SQL
다음을 통해 Oracle Data type 열에 업로드하는 애플리케이션이 있습니다.
TO_TIMESTAMP_TZ('2012-10-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR')
이제 데이터 열에서 'YYYY-MM-DD HH24:MI:SS CDT'
참고: 날짜는 CST로 업로드되지만 CDT로 반환해야 합니다.
Google을 가지고 있지만 날짜 데이터 유형에 대한 다음만 찾았습니다.
SELECT dateColumn From dateTable;
09-NOV-12
SELECT TO_CHAR(dateColumn,'YYYY-MM-DD HH24:MI:SS') From dateTable;
2012-10-09 1:10:21
저는 또한 다음을 시도했습니다.
TO_TIMESTAMP_TZ(dateColumn,'YYYY-MM-DD HH24:MI:SS CDT')
data format not recognized
TO_TIMESTAMP_TZ(CRTE_DT,'YYYY-MM-DD HH24:MI:SS TZH:TZM')
09-NOV-12 1:10:21 AM +01:00
don't understand why this does not come back as YYYY-MM-DD?
어떻게 하면 이 문제를 해결할 수 있을까요?
질문에 약간의 혼란이 있습니다.
- a
Date
데이터 유형은 표준 시간대 구성 요소를 저장하지 않습니다.이 정보는 다음을 삽입할 때 잘리고 영원히 손실됩니다.TIMESTAMP WITH TIME ZONE
의 상태가.Date
. - 날짜를 화면에 표시하거나 문자 API(XML, 파일...)를 통해 다른 시스템으로 전송하려면 이 기능을 사용합니다.Oracle에서 a에는 형식이 없습니다. 즉, 특정 시점입니다.
- 반대로, 당신은 변환하는 데 사용할 것입니다.
VARCHAR2
아주TIMESTAMP
하지만 이것이 변환하지는 않습니다.Date
아주TIMESTAMP
. - 사용자
FROM_TZ
표준 시간대 정보를 에 추가합니다.TIMESTAMP
(또는 a)Date
). - 오라클에서는
CST
표준 시간대이지만CDT
아닙니다.CDT
일광 절약 정보입니다. - 일을 더 복잡하게 하려면,
CST/CDT
(-05:00
) 및CST/CST
(-06:00
) 분명히 다른 값을 가질 것이지만 시간대는CST
에서는 기본적으로 날짜에 따라 일광 절약 정보를 상속합니다.
따라서 변환이 보기만큼 간단하지 않을 수 있습니다.
변환을 원하는 경우Date
d
시간대에 유효하다는 것을 알고 있습니다.CST/CST
시간대의 등가물.CST/CDT
다음을 사용할 수 있습니다.
SQL> SELECT from_tz(d, '-06:00') initial_ts,
2 from_tz(d, '-06:00') at time zone ('-05:00') converted_ts
3 FROM (SELECT cast(to_date('2012-10-09 01:10:21',
4 'yyyy-mm-dd hh24:mi:ss') as timestamp) d
5 FROM dual);
INITIAL_TS CONVERTED_TS
------------------------------- -------------------------------
09/10/12 01:10:21,000000 -06:00 09/10/12 02:10:21,000000 -05:00
여기에서는 기본 타임스탬프 형식이 사용되었습니다.형식을 명시적으로 지정할 수 있습니다.
SQL> SELECT to_char(from_tz(d, '-06:00'),'yyyy-mm-dd hh24:mi:ss TZR') initial_ts,
2 to_char(from_tz(d, '-06:00') at time zone ('-05:00'),
3 'yyyy-mm-dd hh24:mi:ss TZR') converted_ts
4 FROM (SELECT cast(to_date('2012-10-09 01:10:21',
5 'yyyy-mm-dd hh24:mi:ss') as timestamp) d
6 FROM dual);
INITIAL_TS CONVERTED_TS
------------------------------- -------------------------------
2012-10-09 01:10:21 -06:00 2012-10-09 02:10:21 -05:00
타임스탬프 변환오라클의 TZ, 당신은.
TO_TIMESTAMP_TZ('2012-10-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR')
at time zone 'region'
다음을 참조하십시오. http://docs.oracle.com/cd/E11882_01/server.112/e10729/ch4datetime.htm#NLSPG264
지역에 대해서는 http://docs.oracle.com/cd/E11882_01/server.112/e10729/applocaledata.htm#NLSPG0141 을 참조하십시오.
예:
SQL> select a, sys_extract_utc(a), a at time zone '-05:00' from (select TO_TIMESTAMP_TZ('2013-04-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR') a from dual);
A
---------------------------------------------------------------------------
SYS_EXTRACT_UTC(A)
---------------------------------------------------------------------------
AATTIMEZONE'-05:00'
---------------------------------------------------------------------------
09-APR-13 01.10.21.000000000 CST
09-APR-13 06.10.21.000000000
09-APR-13 01.10.21.000000000 -05:00
SQL> select a, sys_extract_utc(a), a at time zone '-05:00' from (select TO_TIMESTAMP_TZ('2013-03-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR') a from dual);
A
---------------------------------------------------------------------------
SYS_EXTRACT_UTC(A)
---------------------------------------------------------------------------
AATTIMEZONE'-05:00'
---------------------------------------------------------------------------
09-MAR-13 01.10.21.000000000 CST
09-MAR-13 07.10.21.000000000
09-MAR-13 02.10.21.000000000 -05:00
SQL> select a, sys_extract_utc(a), a at time zone 'America/Los_Angeles' from (select TO_TIMESTAMP_TZ('2013-04-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR') a from dual);
A
---------------------------------------------------------------------------
SYS_EXTRACT_UTC(A)
---------------------------------------------------------------------------
AATTIMEZONE'AMERICA/LOS_ANGELES'
---------------------------------------------------------------------------
09-APR-13 01.10.21.000000000 CST
09-APR-13 06.10.21.000000000
08-APR-13 23.10.21.000000000 AMERICA/LOS_ANGELES
언급URL : https://stackoverflow.com/questions/15833030/oracle-date-datatype-transformed-to-yyyy-mm-dd-hh24miss-tmz-through-sql
'programing' 카테고리의 다른 글
Solr을 고려해야 할 시기 (0) | 2023.08.30 |
---|---|
반사 클래스를 사용하여 개인/보호된 정적 속성을 설정할 수 있는 방법이 있습니까? (0) | 2023.08.30 |
다음을 사용하여 요소 뒤에 공백("")을 추가합니다. (0) | 2023.08.30 |
JavaScript에서 본문과 함께 GET 요청 보내기(XMLHttpRequest) (0) | 2023.08.30 |
C++에서 3D 어레이를 초기화하는 방법 (0) | 2023.08.30 |