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

MySQL NOW()와 CURDATE() 함수의 차이점 한눈에 정리

MySQL NOW()와 CURDATE() 함수란?

MySQL에서 현재 날짜나 시간을 조회할 때 자주 사용되는 함수가 바로 CURDATE()NOW()입니다. 두 함수는 이름은 비슷하지만 반환하는 값에 중요한 차이가 있습니다.

CURDATE() 함수 – 현재 날짜만 반환

CURDATE() 함수는 이름 그대로 현재 날짜만을 반환합니다. 즉, 시간 정보는 포함되지 않고 'YYYY-MM-DD' 형식의 날짜 값만 출력됩니다.

mysql> select CURDATE();
+------------+
| CURDATE()  |
+------------+
| 2017-10-28 |
+------------+
1 row in set (0.00 sec)

위 예제에서 볼 수 있듯이 CURDATE()는 오직 날짜(2017-10-28)만 결과로 돌려줍니다.

NOW() 함수 – 현재 날짜와 시간 모두 반환

반면 NOW() 함수는 현재 날짜와 시간을 함께 반환합니다. 'YYYY-MM-DD HH:MM:SS' 형식으로 출력되기 때문에, 정확한 시각까지 기록해야 하는 경우에 유용합니다.

mysql> Select NOW();
+---------------------+
| NOW()               |
+---------------------+
| 2017-10-28 09:10:16 |
+---------------------+
1 row in set (0.00 sec)

위 예제에서 NOW()는 날짜뿐 아니라 시간(09:10:16)까지 함께 표시하는 것을 확인할 수 있습니다.

두 함수의 차이점 요약

  • CURDATE(): 현재 날짜만 반환 (예: 2017-10-28)
  • NOW(): 현재 날짜와 시간을 모두 반환 (예: 2017-10-28 09:10:16)

따라서 게시글 작성일처럼 날짜 정보만 필요하다면 CURDATE()를, 로그 기록처럼 정확한 시각까지 저장해야 한다면 NOW()를 사용하는 것이 적합합니다. 참고로 CURDATE()는 CURRENT_DATE(), NOW()는 CURRENT_TIMESTAMP()와 동일하게 동작합니다.