반응형
CURREUNT_TIMESTAMP CURRENT_DATE INTERVAL
SQL에서의 날짜
시스템 날짜
- RDBMS에서는 시스템 날짜와 시간을 확인하는 함수를 제공한다.
- CURREUNT_TIMESTAMP는 함수이지만 인수를 필요로 하지 않는다.
- 즉, 괄호를 사용하지 않는 함수이다.
#CURREUNT_TIMESTAMP로 시스템 날짜 확인
SELECT CURRENT_TIMESTAMP;
# 2020-05-03 20:00:30
- 위의 예문에서 FROM구를 생략했는데, SELECT구만으로도 실행되지만, Oracle과 같이 전통적인 데이터베이스에서는 FROM구는 생략할 수 없으니 주의하자.
날짜 서식
- 날짜 데이터를 데이터베이스에 저장할 때는 CURREUNT_TIMESTAMP를 사용해서 시스템 상의 날짜를 저장할 수 있다.
- 임의의 날짜를 저장하기 위해서는 직접 날짜 데이터를 지정해야 한다.
- 날짜 서식은 국가별로 다르다.
(ex) 한국과 일본에서는 연원일을 슬래시나 하이픈으로 구분해 표기하는 경우가 많고,
미국에서는 월의 경우 숫자를 대신해 Jan, Feb 등으로 표기하며 일월연도순으로 표기한다.)
한국이나 일본의 날짜 서식 예
- 2020/05/03
- 2020-05-03
미국의 날짜 서식 예
- 03 May 2020
이처럼 날짜를 표기하는 방식이 다양하기 때문에 데이터베이스 제품은 날짜 데이터의 서식을 임의로 지정하고 변환할 수 있는 함수를 지원한다.
Oracle의 경우, TO_DATE함수를 이용해서 문자열 데이터를 날짜형 데이터로 변환할 수 있고, 서식도 별도로 지정할 수 있다.
Oracle> SELECT TO_DATE('2020/05/03', 'YYYY/MM/DD') FROM TABLE;
-- SELECT TO_DATE([컬럼명],[포맷형식])FROM [테이블명]
반대로 날짜형 데이터를 문자열 데이터로 변환할 때는 TO_CHAR 함수를 사용한다.
Oracle> SELECT TO_CHAR(COLUMN, 'YYYYMMDD HH24:MI:SS') FROM TABLE;
-- SELECT TO_CHAR([컬럼명]) FROM [테이블명]
-- 20200503 23:10:10
날짜의 덧셈과 뺄셈
- 날짜시간형 데이터는 기간형 수치데이터와 덧셈 및 뺄셈을 할 수 있다.
- 특정일로부터 1일 후는 a + 1DAY, 1일 전이라면 a - 1Day로 하면 된다.
날짜형 간의 덧셈
#시스템 날짜의 1일 후를 계산하기
SELECT CURRENT_DATE + INTERVAL 1 DAY;
# 2020-05-04
- INTERVAL 1 DAY는 1일 후라는 의미의 기간형 상수이다.
- 기간형 상수의 기술방법은 데이터베이스마다 조금씩 다르고 세세한 부분까지 표준화되지는 않았다.
날짜형 간의 뺄셈
- 날짜시간형 데이터 간에 뺄셈을 통해, 두 날짜 사이에 차이가 얼마나 발생하는지 계산할 수 있다.
Oracle> '2020-05-03' - '2020-01-01';
mysql> DATEDIFF('2020-05-03', '2020-01-01');
반응형
'자격증 > SQLD' 카테고리의 다른 글
[SQL 첫걸음] 16강. 행 추가하기 - INSERT (0) | 2022.04.04 |
---|---|
[SQL 첫걸음] 15강. CASE문으로 데이터 변환하기 (0) | 2022.04.04 |
[SQL 첫걸음] 13강. 문자열 연산 (0) | 2022.04.04 |
[SQL 첫걸음] 12강. 수치 연산 (0) | 2022.04.04 |
[SQL 첫걸음] 11강. 결과 행 제한하기- LIMIT (0) | 2022.04.04 |