일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링 메일 전송
- 스프링 쇼핑몰
- 스프링 프로젝트
- spring 프로젝트
- ResponseEntity
- 스프링 파일 삭제
- 회원가입 기능
- 로그아웃 기능 구현
- 파일 업로드
- BCrypt 적용
- 스프링 포트폴리오
- 정규표현식
- 스프링 게시판 구현
- 로그인 기능
- 삭제 구현
- oracle 설치방법
- 인증번호 전송
- 스프링 HikariCP
- 스프링 프로젝트 기본 설정
- 스프링 게시판
- spring 쇼핑몰
- 스프링 업로드
- 스프링 이미지
- 쇼핑몰 프로젝트
- Bcrypt
- 스프링 쇼핑몰 프로젝트
- arraylist
- 이미지 출력
- 쇼핑몰 포트폴리오
- 스프링 프로젝트 설정
- Today
- Total
Kim VamPa
[Oracle DB] 오라클 세션 날짜/시간 형식 변환 본문
Git 주소 : https://github.com/sjinjin7/Blog_Project
목표
기본값 SYSDATE 컬럼의 값 조회 시 '년/월/일/시간' 출력하기
개인 프로젝트 진행 중 현재의 '년/월/일/시간'을 자동으로 등록되는 컬럼을 추가하였습니다.
1
2
3
4
5
6
7
8
9
|
-- Oracle
alter table vam_author add regDate date default sysdate;
alter table vam_author add updateDate date default sysdate;
-- MySQL
alter table vam_author add regDate timestamp default now();
alter table vam_author add updateDate timestamp default now();
|
정상적으로 해당컬럼이 현재의 시간이 저장되었는지 확인하기 위해 SELECT문을 확인하였는데 '년/월/일/시간'을 출력하는 MySQL과 달리 Oracle은 '년/월/일'만 출력을 하였습니다.
이러한 점에대해 궁금하여 왜 이런지에 대해 찾아보게 되었고 이유는 다음과 같습니다. Oracle DB에서 컬럼의 데이터 타입은 DATE이고 기본값으로 SYSDATE를 설정을 하면 년, 월, 일, 시간을 저장을 합니다. 하지만 Oracle에서 Date타입에 대해 일까지만 표시되도록 설정되어 있기 때문에 값을 호출하였을 때는 '년/월/일'만 출력됩니다. 따라서 설정을 변경해주면 '시간'까지 출력이 되는데, 그 방법을 알아보고자 합니다.
목차
1. 설정 변경 방법
2. 왜?
3. 현재 형식 확인하기
1. 설정 변경 방법
SYSDATE 오라클 시간함수는 시스템 세션(session) 상의 날짜와 시간을 가져오는데 세션(session)에서 DATE타입 데이터 형식(FORMAT) 설정 값(VALUE)이 '년/월/일'이기 때문에 SELECT문을 호출하였을 때 값이 '년/월/일'만 출력됩니다. 따라서 해당 데이터 형식(FORMAT)을 값(VALUE) 변경해주어야 합니다.
(SYSTIMESTAMP 오라클 시간 함수 또한 시스템 세션(session)에서 날짜, 시간 정보를 가져오기 때문에 해당 함수 리턴 값 형식 또한 session에서의 형식(FORMAT)의 값을 변경해주면 됩니다.)
변경하기 앞서 현재의 설정이 어떻게 되었는지 확인합니다.
1
2
3
4
5
6
|
SELECT * FROM nls_session_parameters WHERE parameter LIKE '%FORMAT%';
-- or
show parameter nls_date_format;
|
결과를 보면 "NLS_DATE_FORMAT"의 값(VALUE)이 'YYYY/MM/DD' 되어있습니다. 이 값을 변경해주면 됩니다. 저는 '년/월/일/ 시간'을 원하기 때문에 아래와 같이 명령어를 실행하였습니다.
1
2
3
|
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
|
해당 명령을 실행한 후 '년/월/일'만 출력되던 값이 다음과 같이 '년/월/일/시간'까지 출력하는 것을 확인할 수 있습니다.
2. 출력 형식 양식
DATE 타입의 형식을 어떠한 형식들로 변경할 수 있는지 직접 실습해보고 정리하고자 합니다. 변화된 형식을 확인하기 위해서 아래의 명령을 실행하였습니다.
1
2
3
|
SELECT SYSDATE FROM DUAL;
|
2.1 'YYYY/MM/DD' 형식 VS 'YYYY-MM-DD'형식
'YYYY/MM/DD' 형식
1
2
3
|
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD';
|
'YYYY-MM-DD' 형식
1
2
3
|
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
|
2.2 날짜 형식
"년/월/일 시:분:초 12시간제 서기"
1
2
|
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH:MI:SS AM BC';
|
"년/월/일 24시:분:초"
1
2
|
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
|
"년/월/일 요일 24시:분:초"
1
2
|
ALTER SESSION SET NLS_DATE_FORMAT='YY/MM/DD DY HH24:MI:SS';
|
"2 자리 년/월/일 24시:분:초"
1
2
|
ALTER SESSION SET NLS_DATE_FORMAT='YY/MM/DD HH24:MI:SS';
|
REFERENCE
DATE
- 2020.02.10
'정보 > IDE(설치,설정 등)' 카테고리의 다른 글
[Intellij] 단축키 - 리팩토링 (0) | 2021.12.28 |
---|---|
[Eclipse] 이클립스 JRE 재설정 방법 (0) | 2021.02.15 |
[STS] STS3 다운 방법(2021.02기준) (0) | 2021.02.09 |
[STS4][설정] MVC 프로젝트(Spring Legacy Project) 생성방법[STS3 tool 설치 방법] (1) | 2021.02.08 |
[STS][설치방법] STS4 설치 방법(WINDOWS10)(2021.02기준) (0) | 2021.02.07 |