🧚 잠깐만요! Beekeeper Studio는 빠르고 현대적인 오픈 소스 데이터베이스 GUI예요 다운로드
2025년 7월 2일 작성자: Matthew Rathbone

SQL에서 날짜를 삽입하려면 INSERT 문에 'YYYY-MM-DD' 형식의 문자열로 쓰거나, 오늘 날짜는 CURRENT_DATE 같은 함수를 사용하세요. 예제는 PostgreSQL, MySQL, SQLite, SQL Server에서 동작해요.

SQL에서 날짜를 삽입하는 방법

날짜를 'YYYY-MM-DD' 형식의 문자열로 쓰세요. 컬럼이 날짜 타입이면 데이터베이스가 문자열을 날짜로 변환해요:

INSERT INTO table_name (date_column) VALUES ('YYYY-MM-DD');
INSERT INTO orders (order_id, customer, order_date)
VALUES (2, 'Tom', '2021-06-15');

TIMESTAMP나 DATETIME 컬럼이라면 공백 뒤에 24시간제로 시간을 덧붙이세요:

INSERT INTO flights (flight_no, departs_at)
VALUES ('UA 940', '2026-11-02 17:45:00');
-- In SQL Server, make departs_at a DATETIME2: its TIMESTAMP type isn't a date

오늘 날짜를 넣으려면 문자열 자리에 따옴표 없이 CURRENT_DATE를 쓰세요. CURRENT_TIMESTAMP는 날짜와 시간을 함께 반환해요:

INSERT INTO orders (order_id, customer, order_date)
VALUES (3, 'Priya', CURRENT_DATE);
-- In SQL Server, use CAST(GETDATE() AS DATE): it has no CURRENT_DATE

-- Output (the new row, run on 2026-10-13):
-- order_id | customer | order_date
-- ---------+----------+-----------
-- 3        | Priya    | 2026-10-13

알아 둘 규칙

  • 'YYYY-MM-DD'만 사용하세요. 다른 형식은 데이터베이스 설정에 따라 결과가 달라져요. PostgreSQL과 SQL Server는 '06/15/2021'을 월/일/연도로 읽고, MySQL은 거부해요:
INSERT INTO orders (order_id, customer, order_date) VALUES (4, 'Ana', '06/15/2021');
-- MySQL: ERROR 1292 (22007): Incorrect date value: '06/15/2021' for column 'order_date' at row 1
  • SQLite는 날짜를 검사하지 않아요. 날짜 타입이 없어서 입력한 텍스트를 그대로 저장해요. 날짜 함수는 '06/15/2021'을 읽지 못하고, '2021-02-30'은 2021-03-02로 넘겨 버려요.
  • MySQL의 TIMESTAMP는 1970년부터 2038년까지만 지원해요. 생일, 과거 날짜, 먼 미래의 날짜에는 DATETIME을 사용하세요:
-- MySQL
CREATE TABLE people (name VARCHAR(50), born_at TIMESTAMP);
INSERT INTO people (name, born_at) VALUES ('Ada Lovelace', '1815-12-10 00:00:00');
-- ERROR 1292 (22007): Incorrect datetime value: '1815-12-10 00:00:00' for column 'born_at' at row 1
  • ‘현재 시각’은 데이터베이스의 시간대 기준이에요(SQLite는 항상 UTC). 사용자가 여러 시간대에 있다면 UTC로 저장하세요.

대체 구문

데이터베이스마다 오늘 날짜와 현재 시각을 나타내는 고유한 이름도 있어요:

  • MySQL: CURDATE()와 NOW(). PostgreSQL에도 NOW()가 있어요.
  • SQLite: date('now')와 datetime('now').
  • SQL Server: CAST(GETDATE() AS DATE)와 GETDATE(). CURRENT_DATE가 없어서 오늘 날짜를 구하려면 캐스트가 필요해요.

날짜를 삽입해야 하는 경우는?

날짜 삽입은 대부분 다음 다섯 가지 작업 중 하나이고, 작업마다 알맞은 도구가 있어요.

이미 알고 있는 날짜 기록하기

생일, 마감일, 약속 날짜는 사람이나 입력 폼에서 받아요. 'YYYY-MM-DD' 문자열로 입력하세요.

오늘 날짜나 현재 시각 기록하기

주문일, 가입일, 감사 로그는 누군가 입력한 값이 아니라 데이터베이스의 시계에서 가져와야 해요. CURRENT_DATE나 CURRENT_TIMESTAMP(SQL Server에서는 GETDATE())를 사용하거나, 컬럼의 기본값으로 지정하세요.

날짜와 함께 시간 저장하기

회의, 항공편, 로그 항목에는 시간도 필요해요. DATETIME이나 TIMESTAMP 컬럼을 사용하고 'YYYY-MM-DD HH:MM:SS' 형식으로 쓰세요.

다른 날짜로부터 날짜 계산하기

마감일, 갱신일, 알림은 다른 날짜로부터 일정 기간 뒤에 와요. 계산은 데이터베이스에 맡기세요. PostgreSQL과 MySQL에서는 + INTERVAL, SQL Server에서는 DATEADD(), SQLite에서는 수정자를 붙인 date()를 사용해요.

다른 형식으로 된 날짜 불러오기

스프레드시트나 CSV 내보내기 파일에는 06/15/2021 같은 날짜가 자주 들어 있어요. 삽입하면서 변환하세요. MySQL에서는 STR_TO_DATE(), PostgreSQL에서는 TO_DATE(), SQL Server에서는 스타일 번호와 함께 CONVERT()를 사용해요. SQLite는 다른 형식을 해석하지 못하니 substr()로 텍스트를 재배열하세요.

날짜 삽입 실전 예제

한 문장으로 여러 날짜 추가하기

공휴일 목록은 INSERT 하나에 날짜마다 값 행을 하나씩 넣으면 돼요:

INSERT INTO holidays (holiday_name, holiday_date)
VALUES
  ('Independence Day', '2026-07-04'),
  ('Thanksgiving', '2026-11-26'),
  ('Christmas Day', '2026-12-25');

기본값으로 오늘 날짜 채우기

컬럼에 기본값을 지정하면 해당 컬럼을 생략한 모든 INSERT에 오늘 날짜가 들어가요. MySQL에서는 CURRENT_DATE를 괄호로 감싸야 해요:

CREATE TABLE orders (
  order_id INT,
  customer_id INT,
  order_date DATE DEFAULT (CURRENT_DATE)  -- SQL Server: DEFAULT CAST(GETDATE() AS DATE)
);

INSERT INTO orders (order_id, customer_id) VALUES (1, 42);

-- Output (the new row, run on 2026-10-13):
-- order_id | customer_id | order_date
-- ---------+-------------+-----------
-- 1        | 42          | 2026-10-13

현지 회의 시간을 UTC로 저장하기

뉴욕에 있는 사람이 현지 시간 오전 9:30에 회의를 예약해요. 모두의 시간이 맞도록 삽입할 때 UTC로 변환하세요:

INSERT INTO meetings (title, starts_at_utc)
VALUES ('Design review', TIMESTAMP '2026-10-20 09:30:00' AT TIME ZONE 'America/New_York' AT TIME ZONE 'UTC');
-- MySQL (once its time zone tables are loaded):
--   CONVERT_TZ('2026-10-20 09:30:00', 'America/New_York', 'UTC')
-- SQL Server:
--   CAST('2026-10-20 09:30:00' AS DATETIME2) AT TIME ZONE 'Eastern Standard Time' AT TIME ZONE 'UTC'

-- Output (the new row):
-- title         | starts_at_utc
-- --------------+--------------------
-- Design review | 2026-10-20 13:30:00

SQLite에는 이름 있는 시간대가 없으니 삽입 전에 애플리케이션에서 변환하세요.

한 달 뒤 갱신일 설정하기

구독은 시작일로부터 한 달 뒤에 갱신돼요. INSERT 안에서 갱신일을 계산하세요:

INSERT INTO subscriptions (customer, started_on, renews_on)
VALUES ('Tom', '2026-10-13', DATE '2026-10-13' + INTERVAL '1' MONTH);
-- SQL Server: DATEADD(month, 1, '2026-10-13')
-- SQLite:     date('2026-10-13', '+1 month')

-- Output (the new row):
-- customer | started_on | renews_on
-- ---------+------------+-----------
-- Tom      | 2026-10-13 | 2026-11-13

SQLite에서는 월말에 주의하세요. 1월 31일에서 한 달을 더하면 3월로 넘어가지만, 다른 데이터베이스는 2월 28일에서 멈춰요:

SELECT date('2026-01-31', '+1 month');
-- Output: 2026-03-03

일/월/연도 형식 날짜 가져오기

공급업체가 영국식으로 15/06/2021처럼 날짜를 적은 송장을 보내요. 삽입할 때 데이터베이스에 형식을 알려 주세요:

INSERT INTO invoices (invoice_no, issued_on)
VALUES ('INV-1002', TO_DATE('15/06/2021', 'DD/MM/YYYY'));
-- MySQL:      STR_TO_DATE('15/06/2021', '%d/%m/%Y')
-- SQL Server: CONVERT(date, '15/06/2021', 103), where style 103 is dd/mm/yyyy
-- SQLite can't parse dates: rearrange the text with substr()

-- Output (the new row):
-- invoice_no | issued_on
-- -----------+-----------
-- INV-1002   | 2021-06-15

날짜 삽입에 관한 추가 자료

이 블로그의 글:

공식 문서:

Beekeeper Studio는 무료 오픈 소스 데이터베이스 GUI예요

지금까지 써 본 SQL 쿼리 & 에디터 도구 중 최고예요. 데이터베이스 관리에 필요한 모든 게 다 있어요. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio는 빠르고 직관적이며 사용하기 쉬워요. 다양한 데이터베이스를 지원하고 Windows, Mac, Linux에서 모두 잘 작동해요.

Beekeeper의 Linux 버전은 100% 모든 기능을 갖추고 있어요. 대충 만든 부분도, 빠진 기능도 없어요.

Beekeeper Studio 사용자 후기

★★★★★
"Beekeeper Studio가 기존 SQL 작업 방식을 완전히 대체했어요. 빠르고 직관적이라 데이터베이스 작업이 다시 즐거워졌어요."
— Alex K., 데이터베이스 개발자
★★★★★
"여러 데이터베이스 GUI를 써 봤지만, Beekeeper는 기능과 단순함 사이의 균형이 완벽해요. 그냥 잘 돌아가요."
— Sarah M., 풀스택 엔지니어

SQL 작업 방식을 개선할 준비가 되셨나요?

download 무료 다운로드