SQL Dates
SQL Dates: 날짜 및 시간 처리
SQL Dates는 테이블에서 날짜와 시간을 다루기 위한 데이터 타입과 함수들을 의미합니다. 날짜와 시간은 데이터베이스에서 매우 중요한 역할을 하며, 특정 날짜에 대한 기록을 저장하거나 시간 기반 연산을 수행할 때 사용됩니다.
1. SQL 날짜 및 시간 데이터 타입
- DATE: YYYY-MM-DD 형식의 날짜를 저장합니다. (예: 2024-10-11)
- TIME: HH:MM형식의 시간을 저장합니다. (예: 14:30:00)
- DATETIME: 날짜와 시간을 모두 저장합니다. (예: 2024-10-11 14:30:00)
- TIMESTAMP: UNIX 시간으로 저장되며, 1970-01-01 00:00:00부터의 경과 시간을 초 단위로 기록합니다.
- YEAR: 2자리 또는 4자리의 연도를 저장합니다. (예: 2024)
2. 날짜 및 시간 데이터 타입 예제
예제: events
테이블에서 날짜와 시간을 저장
CREATE TABLE events (
event_id INT PRIMARY KEY,
event_name VARCHAR(100),
event_date DATE, -- 날짜만 저장
event_time TIME, -- 시간만 저장
event_datetime DATETIME -- 날짜와 시간 모두 저장
);
이 명령은 events 테이블에서 event_date는 날짜만, event_time은 시간만, event_datetime은 날짜와 시간을 모두 저장합니다.
3. 날짜 및 시간 함수
SQL에서는 날짜와 시간을 처리하기 위한 다양한 함수들을 제공합니다.
3.1 NOW()
현재 날짜와 시간을 반환합니다.
SELECT NOW();
출력 예: 2024-10-11 14:30:00
3.2 CURDATE()
현재 날짜를 반환합니다.
SELECT CURDATE();
출력 예: 2024-10-11
3.3 CURTIME()
현재 시간을 반환합니다.
SELECT CURTIME();
출력 예: 14:30:00
3.4 DATEADD()
특정 날짜에 기간을 더합니다. (SQL Server에서 사용)
SELECT DATEADD(day, 10, '2024-10-01');
출력 예: 2024-10-11
(10일을 더한 날짜)
3.5 DATEDIFF()
두 날짜 간의 차이를 반환합니다.
SELECT DATEDIFF('2024-10-11', '2024-10-01');
출력 예: 10
(두 날짜 간의 차이)
4. 날짜 및 시간 데이터 삽입
날짜와 시간을 저장할 때 YYYY-MM-DD 형식으로 DATE 값을 삽입하고, HH:MM
형식으로
TIME
값을 삽입합니다.
예제: events
테이블에 날짜와 시간 삽입
INSERT INTO events (event_id, event_name, event_date, event_time, event_datetime)
VALUES (1, 'Company Meeting', '2024-10-11', '14:30:00', '2024-10-11 14:30:00');
이 명령은 2024년 10월 11일 오후 2시 30분에 개최되는 회의 정보를 삽입합니다.
5. 날짜 및 시간 형식 변경
DATE_FORMAT() 함수를 사용하여 MySQL에서 날짜와 시간을 특정 형식으로 변환할 수 있습니다.
예제: 날짜 형식을 DD-MM-YYYY
로 변환
SELECT DATE_FORMAT('2024-10-11', '%d-%m-%Y');
출력 예: 11-10-2024
6. 요약
- DATE, TIME, DATETIME 등의 데이터 타입을 사용하여 날짜와 시간을 저장할 수 있습니다.
- NOW(), CURDATE(), DATEDIFF() 등의 함수를 사용해 날짜 및 시간을 조회하거나 계산할 수 있습니다.
- 날짜와 시간의 형식 변환은 DATE_FORMAT() 함수를 사용해 가능하며, 이를 통해 다양한 형식으로 날짜를 출력할 수 있습니다.
날짜와 시간은 데이터베이스에서 중요한 정보이며, 이를 관리하는 SQL 기능들은 데이터를 더욱 정확하고 효율적으로 처리할 수 있게 합니다.