티스토리 뷰

날짜/시간 함수

  • 원하는 날짜를 가져오거나 형식대로 사용할 수 있다.

 

날짜 및 시간을 가져오는 함수

  • now()
  • sysdate()
  • current_timestamp()
  • 날짜만 : curdate()
  • 시간만 : curtime()

날짜 연산 함수

  • date_add("interval {수} {year, month, day, hour, minute, second}")
  • date_sub(위와 동일)

 

쿼리문

-- 현재 날짜와 시간
select now();
select sysdate();
select current_timestamp();

-- 현재 날짜
select curdate();
select current_date();

-- 현재 시간
select curtime();
select current_time();

-- 날짜에서 기준값 만큼 더하기
select now(), date_add(now(), interval 100 day);
select curdate(), date_add(curdate(), interval 100 day);
select curdate(), date_add(curdate(), interval 100 hour);

-- 사원들의 입사 100일 구하기
select emp_no, hire_date, date_add(hire_date, interval 100 day)
from employees;

-- 날짜에서 기준값 만큼 빼기
select curdate(), date_sub(curdate(), interval 100 day);
select now(), date_sub(now(), interval 100 day);

-- 사원들의 입사일에서 100일 빼기
select emp_no, hire_date, date_sub(hire_date, interval 100 day)
from employees;

 

구현 모습


년, 월, 일, 요일(영어이름), 요일(숫자) 등 날짜값에서 원하는 값 가져오는 함수

  • year(날짜) : 년도
  • month(날짜) : 월 (숫자)
  • monthname(날짜) : 월 (영어이름)
  • dayname(날짜) : 요일 (영어이름)
  • dayofweek(날짜) : 요일 (숫자), 일요일 : 1, 월요일 : 2 ...
  • weekday(날짜) : 요일 (숫자), 월요일 : 0
  • dayofyear(날짜) : 일년을 기준으로 해당 날짜까지의 날 수
  • week(날짜) : 해당 날짜가 일년 중 몇번째 주 인지
  • from_days(날짜) : 00년 0월 0일 기준으로 지난 날 수
  • to_days(날짜) : 00년 0월 0일 기준으로 날짜까지의 날 수

 

쿼리문

-- 날짜의 연도 가져오기
select year(curdate());
select year(now());
select year(date_add(curdate(), interval 185 day));
select year(date_sub(now(), interval 300 day));

-- 사원들의 입사 100일 후 연도 가져오기
select hire_date, year(date_add(hire_date, interval 100 day))
from employees;

-- 날짜의 월 가져오기
select month(now());
select month(curdate());
select month(date_add(curdate(), interval 20 day));

-- 사원들의 입사 100일 후 월 가져오기
select first_name, last_name, hire_date, month(hire_date), month(date_add(hire_date, interval 100 day))
from employees;

-- 날짜의 월 영어이름으로 가져오기
select monthname(now());
select monthname(curdate());
select monthname(date_add(curdate(), interval 100 day));

-- 사원들의 입사 100일 후 월 영어이름으로 가져오기
select emp_no, first_name, last_name, hire_date, monthname(hire_date), monthname(date_add(hire_date, interval 100 day))
from employees;

-- 요일 영어로 가져오기
select dayname(now());
select dayname(curdate());
select dayname(date_add(curdate(), interval 100 day));

-- 사원들의 입사 100일 후 요일이 주말인 사원만 요일 영어로 가져오기
select first_name, last_name, hire_date, dayname(date_add(hire_date, interval 100 day))
from employees
where dayname(date_add(hire_date, interval 100 day)) in ('Saturday', 'Sunday');

-- 날짜의 월별 일자를 가져온다
select month(now()), date_add(curdate(), interval 2 month), dayofmonth(date_add(curdate(), interval 2 month));
select dayofmonth(date_add(now(), interval 100 day));

-- dayofweek(날짜), 날짜의 주별 일자를 가져온다. 일 - 1, 월 - 2 ...
select dayofweek(now());
select dayofweek(curdate());
select dayofweek(date_add(curdate(), interval 100 day));

-- 사원의 입사 100일 주별 일자를 가져온다.
select first_name, last_name, dayofweek(date_add(hire_date, interval 100 day))
from employees;

-- weekday(날짜), 날짜의 주별 일자를 가져온다. 월 - 0, 화 - 1 ...
select weekday(now());
select weekday(curdate());
select weekday(date_add(curdate(), interval 100 day));

select first_name, last_name, weekday(hire_date), weekday(date_add(hire_date, interval 100 day))
from employees;

-- dayofyear(날짜), 일년을 기준으로 한 날짜까지의 날 수를 구한다.
select dayofyear(now());
select dayofyear(curdate());
select dayofyear(date_add(now(), interval 100 day));

-- 사원이 입사한지 100일 된 날이 일년의 몇번째 날인지 구한다.
select first_name, last_name, hire_date, dayofyear(date_add(hire_date, interval 100 day))
from employees;

-- week(날짜), 일년 중 몇 번째 주 인지 구한다.
select week(now());
select week(curdate());
select week(date_add(now(), interval 100 day));

-- 사원이 입사한지 100일 된 날이 일년의 몇번째 주 인지 구한다.
select first_name, last_name, date_add(hire_date, interval 100 day), week(date_add(hire_date, interval 100 day))
from employees;

-- from_days(날 수), 00년 00월 00일 부터 날 수 만큼 지난 날짜
select from_days(100);
select from_days(366);
select from_days(367);

-- to_days(날짜), 00년 00월 00일 부터 날짜 까지의 일 수
select to_days(now());
select to_days(curdate());

 

구현 모습


년, 월, 일, 시, 분, 초, 오전, 오후, 요일만 서식지정자로 뽑아내기

  • 년 : Y
  • 월 : m
  • 일 : d
  • 시 : H (표현 : 24시), h (표현 : 12시)
  • 분 : i
  • 초 : S
  • 오전/오후 : p
  • 요일 (영어이름) : W
  • 요일 (숫자, 월 = 1) : w

 

쿼리문

-- 년, 월, 일, 시, 분, 초 뽑아내기 : %Y, %m, %d, %H, %i, %S
select now(), date_format(now(), '%Y년 %m월 %d일, %H:%i:%S');
select now(), date_format(now(), '%p %h:%i:%S');

-- 요일 뽑아내기
select date_format(now(), '%W');
select date_format(now(), '%w');

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday