2014-06-10 3 views
12

MySQL의 NOW(), SYSDATE(), CURRENT_DATE()의 차이점과 실제 시나리오에서 사용할 수있는 곳의 차이점은 무엇입니까? I 테이블 및 컬럼 데이터 유형에 데이터를 삽입 할 때 MySQL의 NOW(), SYSDATE() 및 CURRENT_DATE()의 차이

I는 모두 동일 날짜와 시간을 부여 TIMESTAMP이다 NOW(), SYSDATE(), Current_Date() 시도.

답변

34

Current_date()는 날짜 만 제공합니다.
now()는 명령문, 프로 시저 등이 시작될 때의 datetime을 제공합니다.
sysdate()는 현재 datetime을 제공합니다. 초에서
봐 다음 쿼리와 지금 사이에 (1) SYSDATE (1) 5 초 대기 후 (오른쪽으로 스크롤) :

 
select now(),sysdate(),current_date(),sleep(5),now(),sysdate(); 

-- will give 
-- now() sysdate() current_date() sleep(5) now()1 sysdate()1 
-- 6/10/2014 2:50:04 AM 6/10/2014 2:50:04 AM 6/10/2014 12:00:00 AM 0 6/10/2014 2:50:04 AM 6/10/2014 2:50:09 AM 
1

CURRENT_DATE()이 모두 제공하는 많은 다른 유사한 기능의 동의어입니다 날짜는입니다. NOW()SYSDATE() 사이에는 약간의 차이가 있습니다. 자세한 내용은
official MySQL website 페이지에서 확인할 수 있습니다.

3

Current_date는 클라이언트의 타임 스탬프를 반환하고 sysdate는 서버의 타임 스탬프를 반환합니다. 서버와 클라이언트가 동일한 시스템에 있으면 두 명령의 결과가 동일합니다. 그러나 예를 들어 미국에서 고객이 있고 고객이 중국에있는 경우이 두 함수는 완전히 다른 결과를 반환합니다.

지금 Thew 보낸 모르는()는 :-) 미안

3

NOW()은 문을 실행하기 위해 시작된 시간을 나타낸다 일정 시간을 반환합니다. (저장 함수 또는 트리거 내에서 NOW() 함수 또는 트리거 문이 실행되기 시작한 시간을 반환합니다.) 실행 정확히 시간을 반환하는 SYSDATE()에 대한 동작 다릅니다.

mysql> SELECT NOW(), SLEEP(2), NOW(); 
+---------------------+----------+---------------------+ 
| NOW()    | SLEEP(2) | NOW()    | 
+---------------------+----------+---------------------+ 
| 2006-04-12 13:47:36 |  0 | 2006-04-12 13:47:36 | 
+---------------------+----------+---------------------+ 

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE(); 
+---------------------+----------+---------------------+ 
| SYSDATE()   | SLEEP(2) | SYSDATE()   | 
+---------------------+----------+---------------------+ 
| 2006-04-12 13:47:44 |  0 | 2006-04-12 13:47:46 | 
+---------------------+----------+---------------------+