반응형
EXTRACT() Hour(24시간 형식)
아래와 같은 것이 있습니다.
EXTRACT(HOUR from CAST(to_char(tran_datetime,'DD-MON-YYYY HH24:MI:SS') AS TIMESTAMP))
tran_datetime이라DATEtype. 이것은 다음과 같은 일부 행에 오류를 제공합니다.HOUR must be between 1 and 12그래서 나는 그것이 Hour를 단번에 다룰 수 없다는 것을 이해합니다.24 Hour형식(또는 군 시간).아래는 (분명히) 효과가 있습니다.
EXTRACT(HOUR from CAST(to_char(tran_datetime,'DD-MON-YYYY HH:MI:SS') AS TIMESTAMP))
또는
EXTRACT(HOUR from CAST(tran_datetime AS TIMESTAMP)) --12 Hr format by default
사용할 수 있는 방법이 있습니까?EXTRACT()을 얻기 위해HOUR24시간 형식(예: 오후 3시 15분, 오후 1시 13분 등).
참고하시기 바랍니다.to_char(tran_datetime,'HH24')아주 명백한 옵션이지만, 저는 사용할 것을 찾고 있습니다.EXTRACT()구체적으로 기능합니다.
문제는 에 있지 않습니다.extract확실히 '군대 시간'을 처리할 수 있습니다.다음과 같은 기본 타임스탬프 형식이 있는 것 같습니다.HH대신에HH24아니면 적어도 그것이 내가 이것을 재현할 수 있는 유일한 방법입니다.
SQL> select value from nls_session_parameters
2 where parameter = 'NLS_TIMESTAMP_FORMAT';
VALUE
--------------------------------------------------------------------------------
DD-MON-RR HH24.MI.SSXFF
SQL> select extract(hour from cast(to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS')
2 as timestamp)) from dual;
EXTRACT(HOURFROMCAST(TO_CHAR(SYSDATE,'DD-MON-YYYYHH24:MI:SS')ASTIMESTAMP))
--------------------------------------------------------------------------
15
alter session set nls_timestamp_format = 'DD-MON-YYYY HH:MI:SS';
Session altered.
SQL> select extract(hour from cast(to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS')
2 as timestamp)) from dual;
select extract(hour from cast(to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS') as timestamp)) from dual
*
ERROR at line 1:
ORA-01849: hour must be between 1 and 12
따라서 간단한 '수정'은 24시간을 인식할 수 있는 형식으로 설정하는 것입니다.
SQL> alter session set nls_timestamp_format = 'DD-MON-YYYY HH24:MI:SS';
Session altered.
SQL> select extract(hour from cast(to_char(sysdate, 'DD-MON-YYYY HH24:MI:SS')
2 as timestamp)) from dual;
EXTRACT(HOURFROMCAST(TO_CHAR(SYSDATE,'DD-MON-YYYYHH24:MI:SS')ASTIMESTAMP))
--------------------------------------------------------------------------
15
비록 당신이 그것을 필요로 하지 않지만.to_char모두:
SQL> select extract(hour from cast(sysdate as timestamp)) from dual;
EXTRACT(HOURFROMCAST(SYSDATEASTIMESTAMP))
-----------------------------------------
15
select to_char(tran_datetime,'HH24') from test;
TO_CHAR(tran_datetime,'HH24')
------------------
16
간편하고 간편한 솔루션:
select extract(hour from systimestamp) from dual;
EXTRACT(HOURFROMSYSTIMESTAMP)
-----------------------------
16
언급URL : https://stackoverflow.com/questions/12916611/extract-hour-in-24-hour-format
반응형
'codememo' 카테고리의 다른 글
| Python에서 Selenium WebDriver로 텍스트를 얻는 방법 (0) | 2023.07.17 |
|---|---|
| v-data-table Vuetify Vuex Axios API에서 API를 추가하는 방법 (0) | 2023.07.17 |
| numpy.array() 데이터를 올바르게 저장하고 로드하는 방법은 무엇입니까? (0) | 2023.07.17 |
| gunicorn 소스 변경 시 자동 재로드 (0) | 2023.07.17 |
| pythonNameError: 글로벌 이름 '__file_'이(가) 정의되지 않았습니다. (0) | 2023.07.17 |