on my way

SQL 코딩테스트 03: DATETIME 가공하기 본문

algorithm/CodingTest

SQL 코딩테스트 03: DATETIME 가공하기

wingbeat 2024. 7. 8. 20:06
반응형

1. 날짜와 시간 형식 변환

  • DATE_FORMAT(): 날짜와 시간 형식을 변환합니다.
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
  • %Y: 연도 (4자리)
  • %m: 월 (2자리)
  • %d: 일 (2자리)
  • %H: 시간 (24시간 형식, 2자리)
  • %i: 분 (2자리)
  • %s: 초 (2자리)

2. 날짜와 시간 연산

  • DATE_ADD(): 날짜를 더합니다.
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);  -- 하루 더하기

DATE_SUB(): 날짜를 뺍니다.

SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- 한 시간 빼기

DATEDIFF(): 두 날짜 간의 차이를 일 단위로 반환합니다.

SELECT DATEDIFF('2023-07-01', '2023-06-30');  -- 결과: 1

TIMEDIFF(): 두 DATETIME 값 간의 차이를 시간 단위로 반환합니다.

SELECT TIMEDIFF('2023-06-30 16:30:00', '2023-06-30 14:30:00');  -- 결과: 02:00:00

날짜 데이터에서 일부만을 추출하기

  • YEAR : 연도 
  • MONTH : 월 
  • DAY : 일  (DAYOFMONTH와 같은 함수)
  • HOUR : 시 
  • MINUTE : 분 
  • SECOND : 초 
SELECT HOUR(DATETIME) AS HOUR FROM DATETABLE

 

* 원하는 포맷으로 바꾸기

  • DATE_FORMAT
SELECT DATE_FORMAT(DATETIME,'%Y-%m-%d') FROM DATETABLE

 

 

3. 실습 예제

코딩 테스트에서 자주 접할 수 있는 실습 예제를 통해 DATETIME을 다루는 방법을 익혀봅시다.

3.1 특정 기간 내의 데이터 조회

다음은 최근 7일 동안의 이벤트를 조회하는 예제입니다.

SELECT event_name, event_date
FROM events
WHERE event_date BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW();

 

3.2 날짜 형식을 특정 형식으로 변환하여 조회

다음은 이벤트 날짜를 "YYYY/MM/DD" 형식으로 변환하여 조회하는 예제입니다.

SELECT event_name, DATE_FORMAT(event_date, '%Y/%m/%d') AS formatted_date
FROM events;

3.3 월별 이벤트 수 조회

다음은 월별 이벤트 수를 조회하는 예제입니다.

SELECT DATE_FORMAT(event_date, '%Y-%m') AS event_month, COUNT(*) AS event_count
FROM events
GROUP BY event_month
ORDER BY event_month;

3.4 주말 이벤트 조회

다음은 주말에 발생한 이벤트를 조회하는 예제입니다.

SELECT event_name, event_date
FROM events
WHERE DAYOFWEEK(event_date) IN (1, 7);  -- 1: 일요일, 7: 토요일
반응형