programing

Oracle SQL에서 타임스탬프를 최신 상태로 변환

newsource 2023. 3. 16. 21:32

Oracle SQL에서 타임스탬프를 최신 상태로 변환

타임스탬프를 어떻게 최신으로 변환할 수 있습니까?

테이블에는 필드가 있고start_ts어느쪽인가?timestamp형식:

'05/13/2016 4:58:11.123456 PM'

테이블을 조회하여 최대값과 최소값을 찾아야 합니다.timestamp그럴 수가 없어요

Select max(start_ts) 
from db 
where cast(start_ts as date) = '13-may-2016'

그러나 쿼리는 값을 반환하지 않습니다.

날짜의 최대 타임스탬프를 찾을 수 있도록 도와주세요.

CAST(timestamp_expression AS DATE)

예를 들어 쿼리는 다음과 같습니다.SELECT CAST(SYSTIMESTAMP AS DATE) FROM dual;

사용해보십시오.TRUNC그리고.TO_DATE대신

WHERE
    TRUNC(start_ts) = TO_DATE('2016-05-13', 'YYYY-MM-DD')

또는 다음을 사용할 수 있습니다.>=그리고.<대신, 에서 기능을 사용하지 않도록 하기 위해start_ts열:

WHERE
   start_ts >= TO_DATE('2016-05-13', 'YYYY-MM-DD')
   AND start_ts < TO_DATE('2016-05-14', 'YYYY-MM-DD')

선택하는 동안 다음과 같이 포맷합니다.

to_char(systimestamp, 'DD-MON-YYYY')

예:

select to_char(systimestamp, 'DD-MON-YYYY') from dual;

데이터 유형이 타임스탬프인 경우 표시되는 형식은 관련이 없습니다.

데이터를 최신 상태로 변환하거나 to_char를 사용하지 마십시오.대신 TO_TIMESTamp()를 사용하여 타임스탬프 데이터와 타임스탬프 값을 비교합니다.

WHERE start_ts >= TO_TIMESTAMP('2016-05-13', 'YYYY-MM-DD')
   AND start_ts < TO_TIMESTAMP('2016-05-14', 'YYYY-MM-DD')

간단한 걸로 드셔보세요.

select to_date('2020-07-08T15:30:42Z','yyyy-mm-dd"T"hh24:mi:ss"Z"') from dual;

다음을 사용할 수 있습니다.

select to_date(to_char(date_field,'dd/mm/yyyy')) from table

저는 다음과 같이 하겠습니다.

Select max(start_ts) 
from db 
where trunc(start_ts) =  date'13-may-2016'

날짜 문자열에 밀리초가 있으면 다음을 사용할 수 있습니다.

select TO_TIMESTAMP(SUBSTR('2020-09-10T09:37:28.378-07:00',1,23), 'YYYY-MM-DD"T"HH24:MI:SS:FF3')From Dual;

그런 다음 다음을 사용하여 날짜를 날짜로 변환합니다.

select trunc(TO_TIMESTAMP(SUBSTR('2020-09-10T09:37:28.378-07:00',1,23), 'YYYY-MM-DD"T"HH24:MI:SS:FF3')) From Dual;

나한테도 효과가 있었어, 너도 도움이 됐으면 좋겠어.

이것은 올바른 방법이 아닐 수 있습니다.하지만 서브스트링 기능을 사용하여 문제를 해결했습니다.

Select max(start_ts), min(start_ts)from db where SUBSTR(start_ts, 0,9) ='13-may-2016'

이것을 사용해, 최대 타임 스탬프와 최소 타임 스탬프를 취득할 수 있었습니다.

언급URL : https://stackoverflow.com/questions/37559741/convert-timestamp-to-date-in-oracle-sql