오라클의 날짜 필드는 표시를 위해 포맷되지 않습니다. 입력/출력에서 변환하는/internal format입니다. Oracle 날짜 데이터 유형 열에 날짜를 저장하는 경우 format model 문자열을 사용하여 TO_DATE 함수에 날짜 - 시간을 설명하여 문자열을 내부 형식으로 변환합니다. 오라클은 문자열을 내부 형식으로 해석합니다. 날짜를 표시 할 필요가있을 때 역순으로 수행합니다. TO_CHAR 함수에 다시 형식 모델을 제공하여 날짜를 표시하는 방법을 oracle에 알립니다.
예를 들어 설명하기 위해 값을 저장하지 않고 dd-mm-yyyy를 dd-mm-yyyy hh-mm으로 변환 할 수 있습니다 (시간 분 표시를 의미한다고 가정합니다. 분의 형식 모델은 ' 귀하의 예제와 함께, 당신의 날짜의 시간 부분 입력에 제공되지
SQL> SELECT TO_CHAR(TO_DATE('01-01-2020','DD-MM-YYYY'),'DD-MM-YYYY HH-MI') mydate
FROM DUAL;
MYDATE
----------------
01-01-2020 12-00
하는 것으로, 그래서 자정까지 기본값 : MM '이후,'MI)의 달입니다. 날짜 열에서 시간 값을 저장하려면, 당신은 당신의 입력에 시간 값을 제공해야합니다
SQL> SELECT TO_CHAR(TO_DATE('01/01/2020 10:13','DD/MM/YYYY HH:MI'),'DD-MM-YYYY HH-MI') mydate
FROM DUAL;
MYDATE
----------------
01-01-2020 10-13
SQL>
당신이 뭘하려는 건지, 오라클의 시스템 날짜가에 대한 참조를 얻을 수 있습니다에 따라 의사 열 SYSDATE :.
SQL> SELECT TO_CHAR(sysdate,'MM/DD/YYYY HH:MI:SS AM') dt1,
2 TO_CHAR(sysdate,'DD-MON-YYYY HH24:MI:SS') dt2
3 FROM dual;
DT1 DT2
---------------------- -----------------------------
07/01/2011 03:44:30 PM 01-JUL-2011 15:44:30
SQL>
그래서 귀하의 질문에 원형 교차로의 대답은 전적으로 귀하의 입력 날짜 문자열에 어떤 형식에 따라 달라집니다 것입니다 당신은 변환하는 형식 모델과 TO_DATE 기능을 통해 오라클의 최신 유형, 그런 다음 날짜 항목을 TO_CHAR 및 형식 모델을 통해 선택한 표시 형식으로 변환하십시오. 질문에서 언급 한 "ALTER SESSION"명령의 경우 ALTER SESSION 명령에서 NLS_DATE_FORMAT 매개 변수를 지정하여 날짜 변환에 대한 기본 형식 모델을 지정할 수 있습니다.
SQL> SELECT sysdate FROM dual;
SYSDATE
---------
02-JUL-11
SQL> ALTER SESSION SET nls_date_format='dd-mon-yyyy hh24:mi:ss';
Session altered.
SQL> SELECT sysdate FROM dual;
SYSDATE
--------------------
02-jul-2011 10:39:24