본문 바로가기

프로그래밍/ect

[MySQL] MySQL 날짜 및 시간 관련 함수

 

현재 날짜와 시간

 

1. NOW(), CURRENT_TIMESTAMP()

  • YYYY-MM-DD HH:MM:SS 형태의 현재 날짜와 시간 정보 반환
  • NOW()는 다양한 데이터베이스 시스템에서 사용 가능
  • CURRENT_TIMESTAMP()는 MySQL에서 사용 가능한 표준 함수로 레코드 생성이나 업데이트 시 자동으로 현재 날짜와 시간을 기록할 때 사용

2. CURDATE(), CURRENT_DATE()

  • YYYY-MM-DD 형태의 현재 날짜 정보 반환
  • CURDATE()는 MySQL과 MariaDB에서 사용 가능
  • CURRENT_DATE()는 MySQL에서만 사용 가능하고, 레코드 생성, 업데이트 시 자동으로 현재 날짜를 기록할 때 사용

3. CURTIME(), CURRENT_TIME()

  • HH:MM:SS 형태의 현재 시간 정보 반환
  • CURTIME()과 CURRENT_TIME() 모두 MySQL과 MariaDB 내장 함수

 

 

 


 

 

날짜 구성 요소

1. YEAR(date)

  • 주어진 date의 연도(年)를 반환

2. MONTH(date)

  • 주어진 date의 월(月)을 반환

3. DAY(date)

  • 주어진 date의 일(日)을 반환

4. DAYOFMONTH(date)

  • 주어진 date가 해당 월에서 몇 번째 일(日)인지 반환

5. DAYOFYEAR(date)

  • 주어진 date가 해당 연도에서 몇 번째 일(日)인지 반환

6. WEEKDAY(date)

  • 주어진 date의 요일을 숫자로 반환 (주의 시작이 월요일)
    • 월요일 : 0
    • 화요일 : 1
    • 수요일 : 2
    • 목요일 : 3
    • 금요일 : 4
    • 토요일 : 5
    • 일요일 : 6

7. DAYOFWEEK(date)

  • 주어진 date의 요일을 숫자로 반환 (주의 시작이 일요일)
    • 일요일 : 1
    • 월요일 : 2
    • 화요일 : 3
    • 수요일 : 4
    • 목요일 : 5
    • 금요일 : 6
    • 토요일 : 7

8. LAST_DAY(date)

  • 주어진 date의 해당 월의 마지막 일을 반환

9. DATE(date)

  • 주어진 date를 YYYY-MM-DD 형태로 반환

 

 

 


 

 

시간 구성 요소

1. HOUR(date)

  • 주어진 date에서 시간을 반환

2. MINUTE(date)

  • 주어진 date에서 을 반환

3. SECOND(date)

  • 주어진 date에서 를 반환

4. SEC_TO_TIME(seconds)

  • 주어진 seconds(초)를 HH:MM:SS 형식으로 반환

 

 

 


 

 

WEEK(date, mode) 함수

주어진 날짜의 '주 번호'를 가져오는 함수로, 한 해의 몇 번째 주차인지 반환하는 함수이다.

 

어떤 mode를 설정하느냐에 따라서 한 주의 시작을 일요일로 할 것인지 월요일로 할 것인지 지정할 수 있다.

 

또한, 주 번호의 범위를 0~53 또는 1~53으로 설정 가능하다.

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_week

 

** 기준 : 2024-01-01 ** 

mode 0

  • 일요일이 한 주의 시작이고, 일요일이 시작되는 주가 1주차 (0~53)

Mode 1

 

mode 1

  • 월요일이 한 주의 시작이고, 첫 번째 주에 4일 이상이 있으면 1주차 (0~53)

 

mode 2

  • 일요일이 한 주의 시작이고, 일요일이 시작되는 주가 1주차 (1~53)

mode 3

  • 월요일이 한 주의 시작이고, 첫 번째 주에 4일 이상 있으면 1주차 (1~53)

mode 4

  • 일요일이 한 주의 시작이고, 첫 번째 주에 4일 이상 있으면 1주차 (0~53)

 

mode 5

월요일이 한 주의 시작이고, 월요일이 시작되는 주가 1주차 (0~53)

 

mode 6

  • 일요일이 한 주의 시작이고, 첫 번째 주에 4일 이상 있으면 1주차 (1~53)

 

mode 7

월요일이 한 주의 시작이고, 월요일이 시작되는 주가 1주차 (1~53)

 


SQL문을 실행해 보면 다음과 같은 결과가 나온다!