MySQL에서 날짜 값만 삽입하려면 curdate() 함수를 사용하고, 날짜와 시간 전체(datetime)를 삽입하려면 now() 함수를 사용하면 됩니다. 이 글에서는 두 함수의 차이를 예제를 통해 살펴보겠습니다.
1. curdate()로 현재 날짜만 삽입하기
먼저 datetime 타입의 컬럼을 가진 테이블을 생성합니다.
mysql> create table CurDateDemo -> ( -> ArrivalDate datetime -> ); Query OK, 0 rows affected (0.74 sec)
이제 curdate() 함수를 사용해 현재 날짜만 삽입해 보겠습니다.
mysql> insert into CurDateDemo values(curdate()); Query OK, 1 row affected (0.15 sec)
SELECT 문으로 삽입된 데이터를 확인합니다.
mysql> select *from CurDateDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | ArrivalDate | +---------------------+ | 2018-11-23 00:00:00 | +---------------------+ 1 row in set (0.00 sec)
curdate()는 날짜 정보만 제공하기 때문에, 시간 부분은 자동으로 00:00:00으로 채워지는 것을 확인할 수 있습니다.
2. now()로 현재 날짜와 시간 함께 삽입하기
이번에는 날짜와 시간을 모두 저장하는 예제입니다. 같은 방식으로 테이블을 생성합니다.
mysql> create table NowDemo -> ( -> ArrivalDate datetime -> ); Query OK, 0 rows affected (0.47 sec)
now() 함수를 사용하면 날짜와 시간이 함께 삽입됩니다.
mysql> insert into NowDemo values(now()); Query OK, 1 row affected (0.16 sec)
데이터가 정상적으로 삽입되었는지 확인해 보겠습니다.
mysql> select *from NowDemo;
실행 결과는 다음과 같습니다.
+---------------------+ | ArrivalDate | +---------------------+ | 2018-11-23 17:31:26 | +---------------------+ 1 row in set (0.00 sec)
정리
- curdate(): 현재 날짜만 반환하며, 시간은 00:00:00으로 저장됩니다.
- now(): 현재 날짜와 시간을 모두 반환합니다.
- 참고로 now() 대신 current_timestamp()나 sysdate()를 사용해도 동일한 결과를 얻을 수 있습니다.