반응형
NOW()란?
NOW()는 SQL에서 현재 날짜와 시간을 반환하는 함수입니다. 데이터베이스 서버의 시스템 시간대를 기준으로 날짜와 시간 값이 제공됩니다.
NOW() 기본 구조
NOW()
반환 값:
- YYYY-MM-DD HH:MM:SS 형식의 현재 날짜와 시간.
- 시간 정보가 포함되므로, 날짜와 시간 기반의 작업에서 유용합니다.
사용 예제
1. 현재 날짜와 시간 확인
SELECT NOW() AS 현재_날짜와_시간;
현재_날짜와_시간
2024-11-24 14:30:00 |
2. 현재 시간과 비교
예제: 특정 데이터가 입력된 시간을 기준으로 현재 시간과 비교.
SELECT *
FROM 로그
WHERE 이벤트시간 < NOW();
3. 데이터 삽입 시 현재 시간 기록
예제: 주문 테이블에 데이터 삽입 시 현재 시간을 주문 시간으로 기록.
INSERT INTO 주문 (주문번호, 고객ID, 주문시간)
VALUES (1, 'C001', NOW());
관련 함수와 차이점
함수 설명 반환 값 형식
NOW() | 현재 날짜와 시간 반환 | YYYY-MM-DD HH:MM:SS |
CURRENT_TIMESTAMP() | NOW()와 동일 | YYYY-MM-DD HH:MM:SS |
CURDATE() | 현재 날짜만 반환 | YYYY-MM-DD |
CURTIME() | 현재 시간만 반환 | HH:MM:SS |
NOW() 활용 사례
1. 시간 간격 계산
예제: 특정 이벤트가 발생한 지 1시간 이내인 데이터를 조회.
SELECT *
FROM 이벤트
WHERE TIMESTAMPDIFF(MINUTE, 이벤트시간, NOW()) <= 60;
2. 현재 시간 기준 데이터 업데이트
예제: 만료일이 오늘 기준으로 지난 데이터를 "만료됨"으로 업데이트.
UPDATE 제품
SET 상태 = '만료됨'
WHERE 만료일 < NOW();
3. 날짜와 시간 분리
- 날짜만 추출:현재_날짜
2024-11-24 - SELECT DATE(NOW()) AS 현재_날짜;
- 시간만 추출:현재_시간
14:30:00 - SELECT TIME(NOW()) AS 현재_시간;
4. 데이터 삽입 시 타임스탬프 기록
예제: 데이터가 삽입된 시각을 기록.
INSERT INTO 로그 (이벤트명, 생성시간)
VALUES ('로그인', NOW());
NOW()와 다른 함수 비교
- NOW()는 날짜와 시간 모두 반환.
- CURDATE()는 날짜만 반환.
- CURTIME()는 시간만 반환.
- SYSDATE() (MySQL):
- NOW()와 비슷하지만, 쿼리가 실행되는 시점의 시간을 반환.
- NOW()는 쿼리 시작 시점의 시간을 기준으로 반환.
주의사항
- 시간대 설정:
- 반환되는 시간은 데이터베이스 서버의 시간대 설정을 따릅니다.
- 시간대 설정이 맞지 않으면 원하는 결과가 나오지 않을 수 있음.
- 시간대 설정 예:
SET time_zone = '+9:00'; -- 한국 시간(KST)
- 정확도:
- 시간 단위는 초(second)까지 지원되며, 마이크로초 단위가 필요하면 CURRENT_TIMESTAMP(6)를 사용할 수 있음.
요약
- NOW()는 현재 날짜와 시간을 반환하는 함수.
- 형식: YYYY-MM-DD HH:MM:SS.
- 주요 활용:
- 현재 시간을 기준으로 데이터 조회, 삽입, 업데이트.
- 날짜와 시간 기반의 계산 작업.
- 유사 함수:
- CURDATE() (날짜만 반환), CURTIME() (시간만 반환), SYSDATE() (실시간 시간 반환).
NOW()는 시간 기반 데이터 관리에서 자주 사용되는 핵심 함수입니다! 🚀
반응형
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] EXTRACT 란? (0) | 2024.11.24 |
---|---|
[SQL] CURDATE() 함수란? (0) | 2024.11.24 |
[SQL] DATEDIFF란? (0) | 2024.11.24 |
[SQL] DATE_TRUNC이란? (0) | 2024.11.24 |
[SQL] CTE(Common Table Expressions)란? (0) | 2024.11.24 |
댓글