목차
- 날짜와 시간 데이터 유형과 예시
- MySQL에서 날짜와 시간 데이터 가져오기
- SQL server에서 날짜와 시간 데이터 가져오기
날짜와 시간 데이터 유형과 예시
MySQL에서 날짜와 시간은 다음 데이터 유형을 사용하여 나타낼 수 있습니다.
- DATE: 시간 정보가 없는 날짜를 나타냅니다. 형식은 'YYYY-MM-DD'입니다.
- TIME: 날짜 정보가 없는 시간을 나타냅니다. 형식은 'HH:MM:SS'입니다.
- DATETIME: 날짜 및 시간 정보를 모두 나타냅니다. 형식은 'YYYY-MM-DD HH:MM:SS'입니다.
- TIMESTAMP: DATETIME과 유사하지만 범위가 '1970-01-01 00:00:01' UTC에서 '2038-01-19 03:14:07' UTC까지입니다.
다음은 MySQL에서 이러한 데이터 유형을 사용하는 몇 가지 예입니다.
-- Select the database to use
USE my_database;
-- Creating a table with date and time columns
CREATE TABLE events (
id INT AUTO_INCREMENT PRIMARY KEY,
event_date DATE,
event_time TIME,
event_datetime DATETIME,
event_timestamp TIMESTAMP
);
-- Inserting values into the table
INSERT INTO events (event_date, event_time, event_datetime, event_timestamp)
VALUES ('2023-04-20', '12:30:45', '2023-04-20 12:30:45', '2023-04-20 12:30:45');
-- Querying the table using date and time functions
SELECT * FROM events WHERE DATE(event_datetime) = '2023-04-20';
SELECT * FROM events WHERE TIME(event_datetime) = '12:30:45';
SELECT * FROM events WHERE event_datetime BETWEEN '2023-04-20 12:00:00' AND '2023-04-20 13:00:00';
이러한 데이터 유형 외에도 MySQL은 날짜 및 시간 값 작업을 위한 여러 날짜 및 시간 함수를 제공합니다.
- NOW(): 현재 날짜와 시간을 반환합니다.
- CURDATE() 또는 CURRENT_DATE: 현재 날짜를 반환합니다.
- CURTIME() 또는 CURRENT_TIME: 현재 시간을 반환합니다.
- DATE(): datetime 식의 날짜 부분을 추출합니다.
- TIME(): datetime 식의 시간 부분을 추출합니다.
- DATE_ADD() 및 DATE_SUB(): 날짜에 간격을 더하거나 뺍니다.
- DATEDIFF(): 두 날짜의 차이를 일 단위로 계산합니다.
다음은 이러한 기능을 사용하는 몇 가지 예입니다.
-- Get the current date and time
SELECT NOW();
-- Get the current date
SELECT CURDATE();
-- Get the current time
SELECT CURTIME();
-- Add 1 day to a date
SELECT DATE_ADD('2023-04-20', INTERVAL 1 DAY);
-- Subtract 1 hour from a datetime
SELECT DATE_SUB('2023-04-20 12:30:45', INTERVAL 1 HOUR);
-- Calculate the difference between two dates in days
SELECT DATEDIFF('2023-04-20', '2023-04-21');
MySQL에서 날짜와 시간 데이터 가져오기
SQL에는 날짜의 일부 추출, 날짜 서식 지정, 날짜 산술 수행과 같은 다양한 용도로 사용할 수 있는 DATE와 관련된 여러 함수가 있습니다. 다음은 일반적으로 사용되는 몇 가지 날짜 함수와 예제입니다.
1. DATE(): datetime 또는 timestamp 값에서 날짜 부분을 추출합니다.
SELECT DATE('2023-04-20 15:30:00');
결과: '2023-04-20'
2. YEAR(): 날짜에서 연도를 추출합니다.
SELECT YEAR('2023-04-20');
결과: 2023
3. MONTH(): 날짜에서 월을 추출합니다.
SELECT MONTH('2023-04-20');
결과: 4
4. DAY(): 날짜에서 일자를 추출합니다.
SELECT DAY('2023-04-20');
결과: 20
5. CURDATE(): 현재 날짜를 반환합니다.
SELECT CURDATE();
결과: '2023-04-23'(오늘 날짜가 2023년 4월 23일이라고 가정)
6. DATEDIFF(): 두 날짜 사이의 날짜 차이를 계산합니다.
SELECT DATEDIFF('2023-04-25', '2023-04-20');
결과: 5
7. DATE_ADD(): 날짜에 지정된 시간 간격을 더합니다.
SELECT DATE_ADD('2023-04-20', INTERVAL 5 DAY);
결과: '2023-04-25'
8. DATE_FORMAT(): 지정된 형식에 따라 날짜 형식을 지정합니다.
SELECT DATE_FORMAT('2023-04-20', '%M %d, %Y');
결과: '2023년 4월 20일'
SQL server에서 날짜, 시간 데이터 가져오기
1. GETDATE() 함수는 MySQL이 아닌 SQL Server에만 해당됩니다. 현재 날짜와 시간을 반환합니다. 이것은 MySQL의 NOW() 함수와 동일합니다.
SELECT GETDATE();
2. DATENAME(datepart, date): 입력 날짜의 지정된 날짜 부분을 나타내는 문자열을 반환합니다. datepart 인수는 year, month, day, weekday, hour, minute 또는 second와 같이 추출할 날짜 부분을 지정하는 문자열입니다.
-- 특정 날짜의 월 이름을 가져오기
SELECT DATENAME(month, '2023-04-20');
-- 특정 날짜의 요일 이름 얻기
SELECT DATENAME(weekday, '2023-04-20');
3. DATEPART(datepart, date): 입력 날짜의 지정된 날짜 부분을 나타내는 정수 값을 반환합니다. DATENAME()과 마찬가지로 datepart 인수는 추출할 날짜 부분을 지정하는 문자열입니다.
-- 특정 날짜의 연도 부분 가져오기
SELECT DATEPART(year, '2023-04-20');
-- 특정 날짜의 날짜 가져오기
SELECT DATEPART(day, '2023-04-20');
-- 특정 날짜 시간의 시간 부분 가져오기
SELECT DATEPART(hour, '2023-04-20 12:30:45');
'SQL' 카테고리의 다른 글
[SQL] SQL MATH 함수 (0) | 2023.04.24 |
---|---|
[SQL] SQL GROUP 함수 (0) | 2023.04.24 |
[SQL] SQL 문자열 함수들과 사용 예시 (0) | 2023.04.23 |
[SQL] MySQL 서브 쿼리(SUBQUERY)란? (0) | 2023.04.23 |
[SQL] SQL JOIN의 종류와 예시 (0) | 2023.04.23 |