본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] UPDATE - 테이블 내 데이터 수정하기

반응형

PostgreSQL에서 날짜와 시간을 수정하거나 업데이트하는 방법은 여러 가지가 있습니다. 주로 UPDATE 문을 사용하여 테이블의 날짜 필드를 수정합니다. 또한 날짜를 계산하거나, 특정 형식으로 데이터를 변환할 수 있는 함수와 연산자도 제공됩니다. 아래에서는 날짜 수정과 관련된 다양한 방법을 설명하겠습니다.

1. 테이블에 날짜 필드가 있는 예시

먼저, 날짜 데이터를 수정하기 위해 테이블에 날짜 필드가 있다고 가정하겠습니다. 예를 들어, 다음과 같은 events 테이블이 있다고 가정합니다:

CREATE TABLE events (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    event_date DATE
);

event_date 열이 날짜를 저장하는 필드입니다.

다음과 같은 데이터를 삽입했다고 가정합니다:

INSERT INTO events (name, event_date) VALUES
('Conference', '2024-01-15'),
('Meeting', '2024-02-20'),
('Workshop', '2024-03-10');

2. 날짜 필드 수정 (UPDATE 문 사용)

테이블에서 특정 행의 날짜 데이터를 수정하려면 UPDATE 문을 사용합니다.

2.1 날짜를 특정 값으로 수정

예를 들어, id가 1인 이벤트의 날짜를 2024-02-01로 변경하려면 다음과 같이 합니다:

UPDATE events
SET event_date = '2024-02-01'
WHERE id = 1;

이 명령은 id가 1인 행의 event_date 필드를 2024-02-01로 수정합니다.

2.2 여러 행의 날짜를 일괄 수정

여러 행을 한 번에 수정하려면 WHERE 절에 조건을 추가합니다. 예를 들어, 모든 이벤트의 날짜를 1일씩 늦추려면:

UPDATE events
SET event_date = event_date + INTERVAL '1 day';

이 명령은 모든 행의 event_date 필드를 1일씩 더해 수정합니다.


3. 날짜 계산 및 수정

PostgreSQL에서는 날짜와 시간을 쉽게 계산할 수 있는 연산자와 함수가 제공됩니다.

3.1 날짜에 일정 기간 더하거나 빼기

PostgreSQL에서는 날짜 필드에 INTERVAL을 사용하여 날짜를 더하거나 뺄 수 있습니다.

  • 날짜에 7일 더하기:
  UPDATE events
  SET event_date = event_date + INTERVAL '7 days'
  WHERE id = 2;
  • 날짜에서 1개월 빼기:
  UPDATE events
  SET event_date = event_date - INTERVAL '1 month'
  WHERE id = 3;

3.2 특정 기간을 더하는 다른 예시

  • 1년 더하기:
  • UPDATE events SET event_date = event_date + INTERVAL '1 year' WHERE id = 1;
  • 3시간 더하기 (시간 필드를 사용할 때 유용):
  • UPDATE events SET event_date = event_date + INTERVAL '3 hours' WHERE id = 2;

3.3 NOW() 함수를 사용하여 현재 날짜로 수정

현재 시스템 날짜와 시간을 NOW() 함수로 얻을 수 있으며, 이를 통해 필드를 현재 날짜로 업데이트할 수 있습니다.

  • event_date를 현재 날짜로 설정:
    UPDATE events
    SET event_date = NOW()::DATE
    WHERE id = 1;

위에서 NOW() 함수는 현재 날짜와 시간을 반환하지만, ::DATE를 사용하여 시간은 무시하고 날짜만 사용합니다.


4. 조건에 따라 날짜 수정

날짜 필드를 조건에 따라 수정할 수도 있습니다. 예를 들어, 날짜가 2024년 이전인 모든 이벤트를 2024-05-01로 변경하려면:

UPDATE events
SET event_date = '2024-05-01'
WHERE event_date < '2024-01-01';

이 명령은 2024년 이전 날짜를 가진 모든 행의 날짜를 2024-05-01로 수정합니다.


5. 날짜 형식 변환

PostgreSQL에서는 날짜를 다른 형식으로 변환하거나 특정 형식으로 출력할 수 있습니다. 이는 주로 조회할 때 유용하지만, 필요에 따라 업데이트에서도 사용할 수 있습니다.

5.1 날짜를 문자열로 변환하여 업데이트

날짜를 특정 형식의 문자열로 변환하려면 TO_CHAR 함수를 사용할 수 있습니다.

SELECT TO_CHAR(event_date, 'YYYY-MM-DD') FROM events;

5.2 문자열을 날짜로 변환하여 수정

날짜 형식의 문자열을 날짜 필드로 변환하여 수정하려면 TO_DATE 함수를 사용할 수 있습니다.

UPDATE events
SET event_date = TO_DATE('2024-12-25', 'YYYY-MM-DD')
WHERE id = 1;

이 명령은 문자열 '2024-12-25'을 날짜로 변환하여 id가 1인 행의 event_date를 업데이트합니다.


6. 날짜 수정 요약

  • 기본 날짜 수정: UPDATE 문을 사용하여 특정 날짜 값을 수정할 수 있습니다.
  • 날짜 계산: INTERVAL을 사용하여 날짜에 일정 기간을 더하거나 뺄 수 있습니다.
  • 현재 날짜로 수정: NOW() 함수로 현재 날짜를 사용할 수 있습니다.
  • 조건부 수정: 날짜에 따라 조건을 설정하여 수정할 수 있습니다.
  • 형식 변환: TO_DATETO_CHAR를 사용하여 날짜와 문자열을 변환할 수 있습니다.

이러한 방법을 통해 PostgreSQL에서 날짜 데이터를 쉽게 수정하고 관리할 수 있습니다.

반응형