MS SQL, MySQL 관련 날짜 타입 및 추출 방식 정리

SeongGyun Hong·2025년 3월 1일

SQL

목록 보기
47/51

1. 날짜 데이터 타입

타입MS SQLMySQL설명
날짜만DATEDATE연월일만 저장
날짜+시간DATETIME, DATETIME2DATETIME날짜와 시간 정보 모두 저장
타임스탬프DATETIMEOFFSETTIMESTAMP시간대 정보(MS SQL) 또는 자동 갱신(MySQL)
시간만TIMETIME시간 정보만 저장
작은 범위SMALLDATETIME-MS SQL 전용, 적은 용량으로 제한된 범위
연도만-YEARMySQL 전용, 연도만 저장

2. 날짜 구성요소 추출

구성요소MS SQLMySQL
연도YEAR(date)YEAR(date)
MONTH(date)MONTH(date)
DAY(date)DAY(date)
시간DATEPART(HOUR, date)HOUR(date)
DATEPART(MINUTE, date)MINUTE(date)
DATEPART(SECOND, date)SECOND(date)

사용 예시

MS SQL Server

DECLARE @date DATETIME = '2025-03-02 14:30:45';
SELECT 
    YEAR(@date) AS 연도,             -- 2025
    MONTH(@date) AS,              -- 3
    DAY(@date) AS,                -- 2
    DATEPART(HOUR, @date) AS 시간,    -- 14
    DATEPART(MINUTE, @date) AS,    -- 30
    DATEPART(SECOND, @date) AS;    -- 45

MySQL

SET @date = '2025-03-02 14:30:45';
SELECT 
    YEAR(@date) AS 연도,             -- 2025
    MONTH(@date) AS,              -- 3
    DAY(@date) AS,                -- 2
    HOUR(@date) AS 시간,             -- 14
    MINUTE(@date) AS,             -- 30
    SECOND(@date) AS;             -- 45

3. 날짜 형식 변환

3.1 문자열 → 날짜

MS SQLMySQL
CONVERT(DATETIME, string)STR_TO_DATE(string, format)
CAST(string AS DATETIME)CAST(string AS DATETIME)
PARSE(string AS DATETIME) (SQL 2012+)CONVERT(string, DATETIME)

사용 예시

MS SQL Server

-- 문자열 → 날짜
SELECT CONVERT(DATETIME, '2025-03-02 14:30:45');            -- 2025-03-02 14:30:45
SELECT CAST('2025-03-02' AS DATE);                          -- 2025-03-02
SELECT PARSE('March 2, 2025' AS DATE USING 'en-US');        -- 2025-03-02

MySQL

-- 문자열 → 날짜
SELECT STR_TO_DATE('2025-03-02 14:30:45', '%Y-%m-%d %H:%i:%s');  -- 2025-03-02 14:30:45
SELECT CAST('2025-03-02' AS DATE);                               -- 2025-03-02
SELECT CONVERT('2025-03-02', DATE);                              -- 2025-03-02

3.2 날짜 → 문자열

MS SQLMySQL
CONVERT(VARCHAR, date, style)DATE_FORMAT(date, format)
FORMAT(date, format) (SQL 2012+)CAST(date AS CHAR)

MS SQL 주요 스타일 코드

스타일 코드형식결과 예시
23yyyy-MM-dd2025-03-02
120yyyy-MM-dd HH:mm:ss2025-03-02 14:30:45
101MM/dd/yyyy03/02/2025
103dd/MM/yyyy02/03/2025
112yyyyMMdd20250302

MySQL 주요 형식 지정자

형식자의미결과 예시
%Y4자리 연도2025
%m2자리 월 (01-12)03
%d2자리 일 (01-31)02
%H시간 (00-23)14
%i분 (00-59)30
%s초 (00-59)45

사용 예시

MS SQL Server

DECLARE @date DATETIME = '2025-03-02 14:30:45';

-- 날짜 → 문자열
SELECT CONVERT(VARCHAR, @date, 23);                    -- 2025-03-02
SELECT CONVERT(VARCHAR, @date, 120);                   -- 2025-03-02 14:30:45
SELECT CONVERT(VARCHAR, @date, 101);                   -- 03/02/2025
SELECT FORMAT(@date, 'yyyy-MM-dd');                    -- 2025-03-02
SELECT FORMAT(@date, 'MMMM dd, yyyy');                 -- March 02, 2025

MySQL

SET @date = '2025-03-02 14:30:45';

-- 날짜 → 문자열
SELECT DATE_FORMAT(@date, '%Y-%m-%d');                 -- 2025-03-02
SELECT DATE_FORMAT(@date, '%Y-%m-%d %H:%i:%s');        -- 2025-03-02 14:30:45
SELECT DATE_FORMAT(@date, '%d/%m/%Y');                 -- 02/03/2025
SELECT DATE_FORMAT(@date, '%M %d, %Y');                -- March 02, 2025
profile
헤매는 만큼 자기 땅이다.

0개의 댓글