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

MySQL NOW() 함수로 현재 날짜·시간에 5일 더하는 방법

MySQL에서 현재 날짜와 시간에 5일을 더한 값으로 데이터를 업데이트하려면 NOW() + INTERVAL 5 DAY 구문을 사용해야 합니다. 이 방식은 일(day)뿐만 아니라 시간, 분, 초까지 포함한 전체 날짜-시간 값을 기준으로 계산됩니다. 이해를 돕기 위해 먼저 예제용 테이블을 생성해 보겠습니다.

1. 테이블 생성하기

아래 쿼리로 사용자 정보 만료일을 저장할 테이블을 만듭니다.

mysql> create table UserInformationExpire
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName varchar(10),
    -> UserInformationExpireDateTime datetime not null
    -> );
Query OK, 0 rows affected (0.83 sec)

2. 샘플 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into UserInformationExpire(UserName,UserInformationExpireDateTime)
values('Maxwell','2019-02-09 23:56:27');
Query OK, 1 row affected (0.22 sec)
mysql> insert into UserInformationExpire(UserName,UserInformationExpireDateTime)
values('Carol','2018-11-21 15:45:21');
Query OK, 1 row affected (0.24 sec)
mysql> insert into UserInformationExpire(UserName,UserInformationExpireDateTime)
values('Bob','2019-01-22 16:30:35');
Query OK, 1 row affected (0.25 sec)
mysql> insert into UserInformationExpire(UserName,UserInformationExpireDateTime)
values('Larry','2017-12-25 17:20:33');
Query OK, 1 row affected (0.20 sec)

3. 저장된 전체 레코드 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from UserInformationExpire;

출력 결과

+----+----------+-------------------------------+
| Id | UserName | UserInformationExpireDateTime |
+----+----------+-------------------------------+
| 1 | Maxwell | 2019-02-09 23:56:27 |
| 2 | Carol | 2018-11-21 15:45:21 |
| 3 | Bob | 2019-01-22 16:30:35 |
| 4 | Larry | 2017-12-25 17:20:33 |
+----+----------+-------------------------------+
4 rows in set (0.00 sec)

4. NOW() + INTERVAL로 날짜 업데이트하기

아래는 id = 1인 레코드의 만료 날짜를 현재 시점에서 5일 뒤로 업데이트하는 구문입니다. 현재 날짜가 2019-02-09라면 2019-02-14로 변경됩니다.

mysql> update UserInformationExpire set UserInformationExpireDateTime = now()+interval 5
day where Id = 1;
Query OK, 1 row affected (0.24 sec)
Rows matched: 1 Changed: 1 Warnings: 0

5. 업데이트 결과 검증하기

다시 테이블을 조회하여 id 1의 날짜와 시간만 정상적으로 변경되었는지 확인합니다.

mysql> select *from UserInformationExpire where Id = 1;

출력 결과

+----+----------+-------------------------------+
| Id | UserName | UserInformationExpireDateTime |
+----+----------+-------------------------------+
| 1 | Maxwell | 2019-02-14 23:56:27 |
+----+----------+-------------------------------+
1 row in set (0.00 sec)

다른 시간 단위 적용하기

5일이 아닌 다른 단위를 더하고 싶다면 INTERVAL 뒤의 단위만 바꿔주면 됩니다. 예를 들어 5시간은 NOW() + INTERVAL 5 HOUR, 5분은 NOW() + INTERVAL 5 MINUTE, 5초는 NOW() + INTERVAL 5 SECOND와 같이 작성할 수 있습니다. 이 방식은 회원 정보 만료일 설정, 세션 유지 시간 계산 등 실무에서 자주 활용되므로 꼭 익혀두면 유용합니다.