SQL을 작성하다 보면 현재 시간이 필요할 때가 있다.
이 때 활용할 수 있는 함수가 MySQL 에는 두 가지가 있다.
- sysdate()
- now()
어떤 차이가 있을까?
둘 다 현재 날짜 값을 가져오는 기능을 한다. 다만 현재라는 기준이 다소 다를 뿐이다.
아래 예시를 참고해 보자.
(본 예시는 MySQL 공식문서에서 가져온 내용이다.)
두 번째 예제를 보면 sysdate() 사이에 차이가 있음을 확인할 수 있다.
정리를 해 보면 아래와 같이 정리할 수 있다.
- sysdate() : 함수 호출 시간
- now() : 쿼리 수행 시간
그렇다면 하나의 쿼리에서 여러 번의 현재 날짜를 저장해야 하는 컬럼이 있다면 now() 를 사용하는 것이 맞다.
하지만 개발된 코드를 보면 그냥 기준 없이 사용되는 경우가 있을 것이다.
문제가 없을까?
MySQL 에는 —sysdate-is-now 라는 옵션이 있다.(기본값 false)
옵션명에서도 확인할 수 있듯이 sysdate 와 now 가 같다라는 의미이다.
이 옵션을 true로 설정하면 sysdate() 는 now() 와 동일하게 동작한다.
'DB > MySQL' 카테고리의 다른 글
[Real MySQL 8.0] #4 아키텍처 (7) | 2024.09.08 |
---|---|
MySQL에서 VALUES(col_name) 의 의미는? (0) | 2017.09.07 |
MySQL에서 multi row를 insert 하는 방법 (1) | 2017.08.29 |
MySQL에서 문자열 검색시 대소문자 처리 (1) | 2017.04.04 |
MySQL에서 신규 User에게 신규 Database 권한 부여하기 (0) | 2016.03.13 |