Menu
Coddy logo textTech

날짜 다루기 3부

Coddy SQL 여정의 기초 섹션에 포함된 레슨. 72개 중 33번째.

SQL은 날짜를 조작하고 형식을 지정할 수 있는 몇 가지 유용한 함수를 제공합니다. 다음은 일반적인 날짜 함수입니다:

  1. DATE() - 문자열을 date로 변환합니다
  2. STRFTIME() - 지정된 매개변수에 따라 date를 형식화합니다
  3. DATE('now') - current date를 가져옵니다:

예를 들어 문자열을 날짜로 변환합니다:

SELECT DATE('2023-05-15 13:45:00')
-- 반환: 2023-05-15

SELECT DATE('now')
-- 현재 날짜를 반환합니다

예를 들어 date에서 year, month 및 day를 추출합니다:

-- 연도 가져오기
SELECT STRFTIME('%Y', '2023-05-15')
-- 반환: 2023

-- 월 가져오기
SELECT STRFTIME('%m', '2023-05-15')
-- 반환: 05

-- 일 가져오기
SELECT STRFTIME('%d', '2023-05-15')
-- 반환: 15

-- 연도와 일의 조합 표시 (어떤 구분자든 사용 가능)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- 반환: 2023:15

-- 대신 대시 구분자 사용
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- 반환: 15-05-2023

-- 요일 가져오기
SELECT STRFTIME('%w', '2023-05-15')
-- 반환: 1 (월요일; 일요일은 0)

일반적인 형식 지정자:

  • %Y: year (4자리)
  • %m: month (01-12)
  • %d: day (01-31)
  • %w: 요일 (0-6, Sunday는 0)
  • %H: hour (00-23)
  • %M: 분 (00-59)
  • %S: second (00-59)

지정자 사이에 any separator character를 사용할 수 있습니다(예: -, :, /). 예를 들어 STRFTIME('%d-%m-%Y', date)STRFTIME('%d:%m:%Y', date)는 서로 다른 separator를 사용하지만 day, month, year를 모두 결합합니다.

쿼리에서 이러한 함수들을 결합할 수 있습니다:

-- 현재 연도의 모든 레코드 찾기
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

챌린지

쉬움

사용 가능한 테이블 및 열:

  • events: id, start, end

다음을 표시하는 쿼리를 작성하세요:

  • 이벤트 ID
  • "DD-MM-YYYY" 형식으로 지정된 시작 날짜. 이 열을 formatted_start라고 지정하세요.
  • "DD-MM-YYYY" 형식으로 지정된 종료 날짜. 이 열을 formatted_end라고 지정하세요.
  • start와 end 사이의 기간을 일수로 나타내고 가장 가까운 정수로 반올림한 값. 이 열을 duration_days라고 지정하세요.

start 열의 year가 2009인 행만 필터링하세요(STRFTIME()은 숫자가 아닌 문자열을 반환합니다).

결과를 duration days 기준으로 내림차순 정렬하세요.

참고: 날짜 간 차이를 계산하려면 JULIANDAY(end) - JULIANDAY(start)를 사용하고, 정수로 반올림하려면 ROUND()를 사용하세요.

직접 해보기

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: SQL 플레이그라운드