Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 기존 테이블에 현재 날짜를 추가하는 방법

기존 테이블의 데이터를 수정하려면 UPDATE 문을 사용합니다. 이때 현재 날짜를 값으로 설정하려면 CURDATE() 함수를 함께 사용하면 됩니다.

UPDATE yourTableName SET yourColumnName = CURDATE();

CURDATE()는 쿼리가 실행되는 시점의 현재 날짜를 'YYYY-MM-DD' 형식으로 반환하는 MySQL 내장 함수입니다. 실제 동작 과정을 예제와 함께 단계별로 살펴보겠습니다.

1. 테이블 생성

먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.

mysql> CREATE TABLE DemoTable
-> (
-> DueDate DATETIME
-> );
Query OK, 0 rows affected (0.58 sec)

2. 샘플 데이터 입력

INSERT 문을 사용해 몇 개의 레코드를 추가합니다.

mysql> INSERT INTO DemoTable VALUES('2019-01-10');
Query OK, 1 row affected (0.21 sec)

mysql> INSERT INTO DemoTable VALUES('2019-03-31');
Query OK, 1 row affected (0.18 sec)

3. 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> SELECT * FROM DemoTable;

실행 결과는 다음과 같습니다.

+---------------------+
| DueDate             |
+---------------------+
| 2019-01-10 00:00:00 |
| 2019-03-31 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

4. CURDATE()로 현재 날짜 업데이트

이제 UPDATE 문과 CURDATE() 함수를 사용하여 기존 레코드의 날짜를 현재 날짜로 변경합니다.

mysql> UPDATE DemoTable SET DueDate = CURDATE();
Query OK, 2 rows affected (0.13 sec)
Rows matched: 2 Changed: 2 Warnings: 0

WHERE 절 없이 실행했기 때문에 테이블의 모든 행이 한꺼번에 업데이트됩니다. 특정 조건의 행만 변경하고 싶다면 WHERE 절을 추가하면 됩니다.

5. 업데이트 결과 확인

테이블을 다시 조회하여 변경된 값을 확인합니다.

mysql> SELECT * FROM DemoTable;

모든 레코드가 쿼리 실행 당시의 현재 날짜로 변경된 것을 볼 수 있습니다.

+---------------------+
| DueDate             |
+---------------------+
| 2019-06-22 00:00:00 |
| 2019-06-22 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

참고: 관련 함수

날짜와 시간이 모두 필요한 경우에는 CURDATE() 대신 NOW() 또는 CURRENT_TIMESTAMP를 사용하면 현재 날짜와 시간이 함께 저장됩니다. 반면 CURDATE()는 날짜만 반환하며, 시간 부분은 자동으로 00:00:00으로 채워집니다.