티스토리 뷰
날짜/시간 함수
- 원하는 날짜를 가져오거나 형식대로 사용할 수 있다.
날짜 및 시간을 가져오는 함수
- 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');
반응형
'CS > MySql 정리' 카테고리의 다른 글
mysql 학습정리 : select + Group by, having (0) | 2021.10.04 |
---|---|
mysql 학습정리 : select + 그룹함수 (0) | 2021.10.01 |
mysql 학습정리 : seletc + 문자열 조작 함수 (0) | 2021.09.16 |
mysql 학습정리 : select + 숫자 함수 (0) | 2021.09.15 |
mysql 학습정리 : select + 정렬 (Order by) (0) | 2021.09.14 |
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday