Handling Dates Part 3
Coddy SQL 여정의 기초 섹션에 포함된 레슨 — 72개 중 33번째.
SQL은 날짜를 조작하고 형식을 지정하는 데 유용한 여러 함수를 제공합니다. 다음은 몇 가지 일반적인 날짜 함수입니다:
DATE()- 문자열을 날짜로 변환합니다STRFTIME()- 지정된 매개변수에 따라 날짜 형식을 지정합니다DATE('now')- 현재 날짜를 가져옵니다:
예를 들어 문자열을 날짜로 변환합니다:
SELECT DATE('2023-05-15 13:45:00')
-- 결과: 2023-05-15
SELECT DATE('now')
-- 현재 날짜를 반환합니다예를 들어 날짜에서 연, 월, 일을 추출합니다:
-- 연도 가져오기
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: 연도 (4자리)
- %m: 월 (01-12)
- %d: 일 (01-31)
- %w: 요일 (0-6, 일요일은 0)
- %H: 시 (00-23)
- %M: 분 (00-59)
- %S: 초 (00-59)
지정자 사이에 어떤 구분 기호든 사용할 수 있습니다 (예: -, :, /). 예를 들어, STRFTIME('%d-%m-%Y', date)와 STRFTIME('%d:%m:%Y', date)는 모두 일, 월, 연도를 결합하며, 단지 구분 기호만 다를 뿐입니다.
쿼리에서 이러한 함수들을 결합할 수 있습니다:
-- 현재 연도의 모든 레코드 찾기
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')챌린지
쉬움사용 가능한 테이블 및 컬럼:
<strong>events</strong>:<strong>id</strong>,<strong>start</strong>,<strong>end</strong>
다음 내용을 표시하는 쿼리를 작성하세요:
- 이벤트 ID
- "DD-MM-YYYY" 형식으로 포맷된 시작 날짜. 이 컬럼의 이름을
formatted_start로 지정하세요. - "DD-MM-YYYY" 형식으로 포맷된 종료 날짜. 이 컬럼의 이름을
formatted_end로 지정하세요. - 시작일과 종료일 사이의 기간(일수)을 가장 가까운 정수로 반올림한 값. 이 컬럼의 이름을
duration_days로 지정하세요.
start 컬럼의 연도가 2009인 행만 필터링하세요 (STRFTIME()은 숫자가 아닌 문자열을 반환합니다).
결과를 기간(일수) 기준 내림차순으로 정렬하세요.
주의: 날짜 간의 차이를 계산하려면 JULIANDAY(end) - JULIANDAY(start)를 사용하고, 정수로 반올림하려면 ROUND()를 사용하세요.
치트 시트
SQL은 날짜를 조작하고 형식을 지정하는 데 유용한 몇 가지 함수를 제공합니다:
DATE()- 문자열을 날짜로 변환합니다STRFTIME()- 지정된 매개변수에 따라 날짜 형식을 지정합니다DATE('now')- 현재 날짜를 가져옵니다
문자열을 날짜로 변환:
SELECT DATE('2023-05-15 13:45:00')
-- Returns: 2023-05-15
SELECT DATE('now')
-- Returns current dateSTRFTIME()을 사용하여 날짜 부분 추출:
-- 연도 가져오기
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023
-- 월 가져오기
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05
-- 일 가져오기
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15
-- 연도와 일의 조합 표시
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15일반적인 형식 지정자:
- %Y: 연도 (4자리)
- %m: 월 (01-12)
- %d: 일 (01-31)
- %H: 시 (00-23)
- %M: 분 (00-59)
- %S: 초 (00-59)
WHERE 절에서 사용:
-- 현재 연도의 모든 레코드 찾기
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')JULIANDAY()를 사용하여 날짜 차이 계산:
JULIANDAY(end_date) - JULIANDAY(start_date)직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns