작성: Corn/sec, ChatGPT, 편집: Corn/sec
SQL에서는 날짜/시간 데이터를 처리할 때 다양한 함수를 제공하며, 대표적인 함수들은 다음과 같습니다.
| 함수 | 설명 | 예제 |
| YEAR(date) | 연도 추출 | SELECT YEAR('2024-03-04'); -- 결과: 2024 |
| QUARTER(date) | 분기(1~4) 추출 | SELECT QUARTER('2024-03-04'); -- 결과: 1 |
| MONTH(date) | 월(1~12) 추출 | SELECT MONTH('2024-03-04'); -- 결과: 3 |
| WEEK(date) | 연 기준 주차(1~53) | SELECT WEEK('2024-03-04'); -- 결과: 9 |
| DAY(date) | 일(1~31) 추출 | SELECT DAY('2024-03-04'); -- 결과: 4 |
| DAYOFWEEK(date) | 요일(1=일요일, 7=토요일) | SELECT DAYOFWEEK('2024-03-04'); -- 결과: 2 (월요일) |
| DAYOFYEAR(date) | 연도 기준 일(1~365) | SELECT DAYOFYEAR('2024-03-04'); -- 결과: 64 |
| 함수 | 설명 | 예제 |
| WEEKOFYEAR(date) | 연 기준 주차(1~53) | SELECT WEEKOFYEAR('2024-03-04'); -- 결과: 10 |
| WEEKDAY(date) | 요일(0=월요일, 6=일요일) | SELECT WEEKDAY('2024-03-04'); -- 결과: 0 (월요일) |
| 함수 | 설명 | 예제 |
| HOUR(datetime) | 시 추출 (0~23) | SELECT HOUR('2024-03-04 15:30:00'); -- 결과: 15 |
| MINUTE(datetime) | 분 추출 (0~59) | SELECT MINUTE('2024-03-04 15:30:00'); -- 결과: 30 |
| SECOND(datetime) | 초 추출 (0~59) | SELECT SECOND('2024-03-04 15:30:45'); -- 결과: 45 |
| 함수 | 설명 | 예제 |
| LAST_DAY(date) | 해당 월의 마지막 날짜 | SELECT LAST_DAY('2024-03-04'); -- 결과: 2024-03-31 |
| DATE_ADD(date, INTERVAL n unit) | 특정 기간 추가 | SELECT DATE_ADD('2024-03-04', INTERVAL 1 MONTH); -- 결과: 2024-04-04 |
| DATE_SUB(date, INTERVAL n unit) | 특정 기간 감소 | SELECT DATE_SUB('2024-03-04', INTERVAL 1 MONTH); -- 결과: 2024-02-04 |
| DATEDIFF(date1, date2) | 날짜 차이(일 단위) | SELECT DATEDIFF('2024-03-04', '2024-01-01'); -- 결과: 63 |
| 함수 | 설명 | 예제 |
| DATE_FORMAT(date, format) | 날짜 형식 변환 | SELECT DATE_FORMAT('2024-03-04', '%Y-%m-%d'); -- 결과: 2024-03-04 |
| STR_TO_DATE(string, format) | 문자열을 날짜로 변환 | SELECT STR_TO_DATE('2024-03-04', '%Y-%m-%d'); -- 결과: 2024-03-04 |
📍 해당 날짜가 속한 분기와 연도 출력
SELECT
NOW() AS 현재_날짜,
YEAR(NOW()) AS 연도,
QUARTER(NOW()) AS 분기,
MONTH(NOW()) AS 월;
📍 각 월의 첫째 날과 마지막 날 구하기
SELECT
DATE_FORMAT(NOW(), '%Y-%m-01') AS 첫째날,
LAST_DAY(NOW()) AS 마지막날;
SELECT * FROM sales_data
WHERE date >= DATE_SUB(NOW(), INTERVAL 6 MONTH);
📍 일주일 전의 날짜 구하기
SELECT DATE_SUB(NOW(), INTERVAL 7 DAY) AS 일주일전;
| SQL 정규 표현식(Regex) 정리 및 활용 예제 (0) | 2025.01.29 |
|---|