🖥️ IT, 컴퓨터/🏁 SQL・빅쿼리

[SQL] NOW() 함수란?

김 홍시 2024. 11. 25.
반응형

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()와 다른 함수 비교

  1. NOW()는 날짜와 시간 모두 반환.
  2. CURDATE()는 날짜만 반환.
  3. CURTIME()는 시간만 반환.
  4. SYSDATE() (MySQL):
    • NOW()와 비슷하지만, 쿼리가 실행되는 시점의 시간을 반환.
    • NOW()는 쿼리 시작 시점의 시간을 기준으로 반환.

주의사항

  1. 시간대 설정:
    • 반환되는 시간은 데이터베이스 서버의 시간대 설정을 따릅니다.
    • 시간대 설정이 맞지 않으면 원하는 결과가 나오지 않을 수 있음.
    • 시간대 설정 예:
      SET time_zone = '+9:00'; -- 한국 시간(KST)
      
  2. 정확도:
    • 시간 단위는 초(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

댓글