MySQL에서 현재 날짜 및 시간 가져오기
오늘은 NOW()
, CURRENT_TIMESTAMP()
(CURRENT_TIMESTAMP
라고도 함) 및 SYSDATE()
를 사용하여 MySQL에서 현재 날짜와 시간을 가져옵니다. 또한 이 세 가지 기능을 비교하는 것도 볼 수 있습니다.
MySQL에서 현재 날짜 및 시간 가져오기
MySQL에서 현재 날짜와 시간을 얻는 세 가지 방법이 있습니다. 이러한 메소드에는 NOW()
, CURRENT_TIMESTAMP()
(또한 CURRENT_TIMESTAMP
, SYSDATE()
)가 포함됩니다. 다음과 같이 INSERT
문에서 쉽게 사용할 수 있습니다.
예제 코드:
# use NOW()
INSERT INTO student_attendance(ID, ATTENDANCE)
VALUES(1, NOW());
# use CURRENT_DATETIME
INSERT INTO student_attendance(ID, ATTENDANCE)
VALUES(1, CURRENT_DATETIME);
# use SYSDATE()
INSERT INTO student_attendance(ID, ATTENDANCE)
VALUES(1, SYSDATE());
현재 날짜와 시간을 삽입하는 방법에는 여러 가지가 있으므로 그 차이점을 이해하는 것이 중요합니다.
언급된 방법 중 하나를 사용하는 시기와 장소를 명확히 할 것입니다. NOW()
, CURRENT_TIMESTAMP()
및 SYSDATE()
에 대한 간략한 비교는 다음과 같습니다.
NOW()
함수
날짜와 시간은 사용 중인 컨텍스트에 따라 NOW()
메서드에 의해 반환됩니다. 예를 들어 NOW()
메서드는 컨텍스트가 문자열인 경우 "YYYY-MM-DD HH-MM-SS"
와 같은 문자열 형식의 날짜 및 시간을 반환합니다.
함수가 숫자 컨텍스트를 사용하는 경우 YYYYMMDDHHMMSS
와 같은 숫자 형식으로 반환됩니다. 이 특정 문이 실행되기 시작하는 시간을 나타내는 상수 시간을 반환합니다.
사용 가능하며 MySQL 버전 4.0 이상에서 사용할 수 있습니다.
CURRENT_TIMESTAMP()
함수
CURRENT_TIMESTAMP()
를 CURRENT_TIMESTAMP
로 쓸 수도 있습니다. 함수가 각각 문자열 컨텍스트 또는 숫자 컨텍스트를 사용하는 경우 현재 날짜 및 시간을 "YYYY-MM-DD HH-MM-SS"
또는 YYYYMMDDHHMMSS
로 반환합니다.
CURRENT_TIMESTAMP
의 동의어에는 NOW()
및 CURRENT_TIMESTAMP()
기능이 포함됩니다. 다음 쿼리를 실행하여 동일한 출력을 확인합니다.
SELECT NOW(), CURRENT_TIMESTAMP, CURRENT_TIMESTAMP();
출력:
NOW() |
CURRENT_TIMESTAMP |
CURRENT_TIMESTAMP() |
---|---|---|
2022-04-26 11:40:25 | 2022-04-26 11:40:25 | 2022-04-26 11:40:25 |
MySQL 버전 4.0 이상에서 사용할 수 있습니다. 또한 이 특정 쿼리가 실행되기 시작하는 시간을 나타내는 상수 시간을 출력합니다.
SYSDATE()
함수
NOW()
및 CURRENT_TIMESTAMP()
함수와 마찬가지로 이 함수에서 사용하는 컨텍스트에 따라 현재 날짜 및 시간도 반환합니다. 컨텍스트는 문자열 또는 숫자일 수 있습니다.
문자열 및 숫자 컨텍스트의 경우 각각 "YYYY-MM-DD HH:MM:SS"
및 YYYYMMDDHHMMSS
로 반환됩니다. SYSDATE()
함수는 쿼리가 실행되는 정확한 시간을 반환합니다.
MySQL 문서를 살펴보면 SYSDATE()
와 NOW()
사이에 미묘한 차이가 있다고 말할 수 있습니다. NOW()
, CURRENT_TIMESTAMP
및 CURRENT_TIMESTAMP()
는 동일한 결과를 반환합니다.
차이점을 확인하려면 다음 쿼리를 실행하십시오.
SELECT NOW(), SYSDATE(), CURRENT_TIMESTAMP(),
SLEEP(5), NOW(), SYSDATE(),CURRENT_TIMESTAMP();
출력:
SLEEP()
함수 전후에 SYSDATE()
함수에 의해 생성된 결과를 제외하고 위에 주어진 출력에서 모든 것이 일정하게 유지됩니다. NOW()
메서드는 쿼리 실행이 시작되는 시점을 나타내는 상수 시간을 반환합니다.
트리거 또는 저장 프로시저(저장 함수라고도 함)에서 NOW()
는 트리거 문 또는 함수가 실행을 시작하는 시간을 출력합니다. 반면 SYSDATE()
는 실행(실행)되는 정확한 시간을 반환합니다.