NLS_DATE_FORMAT
SQL> col parameter format a30;
SQL> col value format a40;
SQL> select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_DATE_FORMAT RR/MM/DD
SQL> select sysdate from dual;
SYSDATE
--------
05/04/18
SQL> create table temp_date
2 (id number, cur_date date);
테이블이 생성되었습니다.
SQL> insert into temp_date values (1, '05/03/23');
-> 위에서 확인 NLS_DATE_FORMAT과 동일하게 맞추면 날짜 입력됨.
명시되지 않은 시간 분/초는 default값이 12:00:00으로 입력됨.
1 개의 행이 만들어졌습니다.
SQL> alter session set nls_date_format = 'DD/MM/RR HH:MI:SS';
세션이 변경되었습니다.
SQL> insert into temp_date values (2, '28/03/05 12:10:17');
-> NLS_DATE_FORMAT을 변경시켜 날짜 format을 바꾼후 입력.
1 개의 행이 만들어졌습니다.
SQL> insert into temp_date values (3, to_date('15/07/05 12','DD/MM/RR HH'));
-> to_date라는 함수를 통해 원하는 format으로 변경 가능.
to_date('시간‘,'FORMAT요소’) 시간에 맞춰서 FORMAT요소를 설정
1 개의 행이 만들어졌습니다.
SQL> select * from temp_date;
ID CUR_DATE
---------- -----------------
1 23/03/05 12:00:00
2 28/03/05 12:10:17
3 15/07/05 12:00:00
SQL> select id, to_char(cur_date, 'DD/MM/RR HH:MI:SS') from temp_date;
ID TO_CHAR(CUR_DATE,
---------- -----------------
1 23/03/05 12:00:00
2 28/03/05 12:10:17
3 15/07/05 12:00:00
부적절한 경우 오류 나옴
SQL> insert into temp_date values (2, '03/28/05 12:10:17');
insert into temp_date values (2, '03/28/05 12:10:17')
*
1행에 오류:
ORA-01843: 지정한 월이 부적합합니다