programing

'1985-02-07' 변환 방법T00:00:00.000Z" (ISO8601)를 Oracle 날짜 값으로 변경하시겠습니까?

i4 2023. 4. 1. 08:26
반응형

'1985-02-07' 변환 방법T00:00:00.000Z" (ISO8601)를 Oracle 날짜 값으로 변경하시겠습니까?

타임스탬프('1985-02-07)를 변환하려고 했습니다.T00:00:00.000Z")에서 지금까지 여러 번 시도했지만 성공하지 못했습니다.

다음은 제가 시도한 질문입니다.

 select to_date('1985-02-07T00:00:00.000Z', 'YYYY-MM-DDTHH24:MI:SS.fffZ')
 from dual;

제안해 주셔서 대단히 감사합니다.

to_date입력을 로 변환하다DATE소수 초수를 지원하지 않는 유형입니다.프랙셔널 초를 사용하려면TIMESTAMP사용할 때 생성되는 유형to_timestamp

에 대한 PST의 코멘트ff3수식어도 맞습니다.

마스크 형식의 "상수" 값은 큰따옴표로 묶어야 합니다.

마지막으로, 다음과 같이 기술합니다.

select to_timestamp('1985-02-07T00:00:00.000Z', 'YYYY-MM-DD"T"HH24:MI:SS.ff3"Z"')
from dual;
SQL> select cast(to_timestamp('1985-02-07T00:00:00.000Z', 'yyyy-mm-dd"T"hh24:mi:ss.ff3"Z"') as date)
  2    from dual
  3  /

CAST(TO_TIMESTAMP('
-------------------
07-02-1985 00:00:00

1 row selected.
SELECT to_timestamp_tz('2012-08-08T09:06:14.000-07:00','YYYY-MM-DD"T"HH24:MI:SS.FF3TZR')
FROM dual;

External table DDL,
extract_date char(29) DATE_FORMAT timestamp WITH TIMEZONE mask 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZR'

따라야규칙:

  1. 리터럴은 큰따옴표로 묶어야 합니다.MM월수를 예상합니다."MM"더블 M이 필요합니다.
  2. 프랙셔널 초의 형식은 다음과 같습니다.FF,것은 아니다.F또는FFF. 자리수는 후행 정수로 지정합니다.FF3.
  3. 단, 날짜는 소수점을 유지할 수 없기 때문에 사용할 수 없습니다.FF3이 문맥에서는요.

이 방법은 다음과 같습니다.

SELECT TO_DATE('1985-02-07T00:00:00', 'YYYY-MM-DD"T"HH24:MI:SS')
FROM dual;

몇 초 안에 소수점을 무시할 수 있는 방법은 없을까?TO_DATE()스트링 조작 기능을 사용하여 제거했습니다.

SELECT TO_DATE(SUBSTR('1985-02-07T00:00:00.000Z', 1, 19), 'YYYY-MM-DD"T"HH24:MI:SS')
FROM dual;

datetime 형식의 문자열을 가져오려면 다음을 수행하십시오.

select to_char(TO_DATE('2012-06-26T00:00:00.809Z', 'YYYY-MM-DD"T"HH24:MI:SS".""ZZZZ"'),'yyyy-MM-dd hh:mm:ss PM') as EVENT_DATE from dual

EVENT_DATE
-----------------------
2012-06-26 12:06:00 AM

날짜만 간단히 사용...

select TO_DATE('2012-01-06T00:00:00.809Z', 'YYYY-MM-DD"T"HH24:MI:SS".""ZZZZ"') from dual

언급URL : https://stackoverflow.com/questions/8654292/how-to-convert-1985-02-07t000000-000z-iso8601-to-a-date-value-in-oracle

반응형