[DB, SQL] 시간, 날짜 관련 함수

JUNHO YEOM·2022년 11월 2일
0

DB, SQL

목록 보기
3/21
post-thumbnail

시간, 날짜 관련 함수

CRDATE, CRTIME, NOW

CURRENT_DATE, CRDATE: 현재 날짜 반환
CURRNET_TIME, CRTIME: 현재 시간 반환
NOW: 현재 날짜와 시간 반환

SELECT
  CRDATE()
  # 2022-11-01
  CRTIME()
  # 15:21:31
  NOW()
  # 2022-11-01 15:21:31

DATE, TIME

DATE: 입력받은 문자열로 날짜 생성
TIME: 입력받은 문자열로 시간 생성

SELECT
  DATE('2022-11-01') = DATE('2022-11-1')
  # 1
  TIME('01:02:03') = TIME('1:2:3')
  # 1

날짜, 시간 정보 반환

YEAR: 주어진 DATETIME값의 년도 반환
MONTHNAME: 주어진 DATETIME값의 월(영문) 반환
MONTH: 주어진 DATETIME값의 월 반환
WEEKDAY: 주어진 DATETIME값의 요일값 반환(월요일:0) 반환
DAYNAME: 주어진 DATETIME값의 요일명 반환 반환
DAYOFMONTH, DAY: 주어진 DATETIME값의 날짜(일) 반환
HOUR: 주어진 DATETIME의 시 반환
MINUTE: 주어진 DATETIME의 분 반환
SECOND: 주어진 DATETIME의 초 반환


ADDDATE, SUBDATE

ADDDATE, DATE_ADD: 시간, 날짜 더하기
SUBDATE, DATE_SUB: 시간, 날짜 빼기

SELECT
  ADDDATE('2021-10-01', INTERVAL 1 MONTH)
  # '2022-11-01'
  SUBDATE('2022-11-01', INTERVAL -1 MONTH)
  '2022-10-01'

LAST_DAY

LAST_DAY: 해당월의 마지막 날짜 구하기

SELECT
  LAST_DAY('2022-11-01')
  # 2022-11-30
  DAY(LAST_DAY('2022-11-01')
  # 30

DATE_FORMAT

DATE_FORMAT(시간, 지정 형식)

지졍 형식

%Y: 연도 4자리
%y: 연도 2자리
%M: 월 영문
%m: 월 숫자
%D: 일 영문(1st, 2nd, 3rd)
%d, %e: 일 숫자(01~31)
%T: hh:mm:ss
%r: hh:mm:ss AM/PM
%H, %k: 시(~23)
%h, %l: 시(~12)
%i: 분
%S, %s: 초
%p: AM/PM

SELECT
  DATE_FORMAT(NOW(), '%M, %D, %Y %T')
  # July 21, 2022 16:43:15

기타 함수

IF

IF(조건, T, F): 조건이 True라면 T반환, False라면 F반환

SELECT
  IF (1> 2, '1은 2보다 크다.', '1은 2보다 작다.')
# '1은 2보다 작다

CASE

CASE: WHEN 조건 THEN 반환할 값, 해당되는 값이 없다면 ELSE 반환할 값

SELECT
CASE
  WHEN -1 > 0 THEN '-1은 양수다.'
  WHEN -1 = 0 THEN '-1은 0이다.'
  ELSE '-1은 음수다.'
END;
# 조건중에 하나를 만족하면 해당하는 조건의 return 값을 반환
# '-1은 음수다'

IFNULL

IFNULL(A, B): A가 NULL이면 B출력

SELECT
  IFNULL(NULL, 1)
  # 1

0개의 댓글