[SQL] 14. 날짜 연산

uuuu.jini·2023년 1월 24일
0

SQL 첫걸음

목록 보기
14/36
post-thumbnail

CURRENT_TIMESTAMP CURRENT_DATE INTERVAL

1. SQL에서의 날짜

날짜나 시간 데이터는 수치 데이터와 같이 사칙 연산을 할 수 있다. 날짜 시간 데이터를 연산하면 결괏값으로 동일한 날짜시간 형의 데이터를 반환하는 경우도 있으며 기간(간격)의 차를 나타내는 기간형(interval) 데이터를 반환하는 경우도 있다.

- 시스템 날짜

시스템 날짜란 하드웨어 상의 시계로부터 실시간으로 얻을 수 있는 일시적인 데이터를 말한다.

RDBMS에서도 시스템 날짜와 시간을 확인하는 함수를 제공한다. 표준 SQL에서는 CURRENT_TIMESTAMP 함수로 실행했을 때를 기준으로 시간을 표시한다. 인수를 필요로 하지 않으며 괄호또한 지정할 필요 없다.

  • SELECT CURRENT_TIMESTAMP, 사용하지 않는 편이 좋다.

- 날짜 서식

날짜 데이터를 데이터베이스에 저장할 경우 CURRENT_TIMESTAMP를 사용해 시스템 상의 날짜를 저장할 수 있다.

날짜의 서식은 국가별로 다르다. 데이터베이스 제품은 날짜 데이터의 서식을 임의로 지정, 변환할 수 있는 함수를 지원한다. Oracle의 경우 TO_DATE함수를 사용해 문자열 데이터를 날짜형 데이터로 변환할 수 있다.

  • TO_DATE('2014/01/25','YYYY/MM/DD')

  • 'YYYY': 년

  • 'MM': 월

  • 'DD': 날

2. 날짜의 덧셈과 뺄셈


날짜 시간형 데이터에 기간형 수치데이터를 더하거나 빼면 날짜시간형 데이터가 반환된다.

  • CURRENT_DATE + INTERVAL 1 DAT
  • CURRENT_DATE: 시스템 날짜의 날짜만 확인하는 함수
  • INTERVAL 1 DAY: 1일 후라는 의미의 기간형 상수

- 날짜형 간의 뺄셈

두 날짜 사이의 차이가 얼마나 발생하는지 계산 가능

  • MySQL: DATEDIFF('2014-02-28','2014-01-01')
profile
멋쟁이 토마토

0개의 댓글