출처 : https://jang8584.tistory.com/7
dayofweek(date), weekday(date)
날짜를 몇 번째 요일인지를 나타내는 숫자로 리턴dayofweek
: 일요일(1), 월요일(2), ..., 토요일(7)weekday
: 월요일(0), 화요일(1), ..., 일요일(6)
dayofmonth(date)
그 달의 몇 번째 날인지를 리턴 (일자 리턴)
dayofyear(date)
한 해의 몇 번째 날인지 리턴 (1~366)
ex) select dayofyear('2020-02-01');
-> 32
month(date)
해당 날짜가 몇 월인지 리턴
week(date)
해당 날짜가 몇 번째 주인지를 리턴 (0~52)
year(date)
년도를 리턴 (1000~9999)
dayname(date), monthname(date)
해당 날짜의 요일 이름, 월 이름을 영어로 리턴
quarter(date)
분기를 리턴 (1~4)
ex) select quarter('98-04-01');
-> 2
hour(time), minute(time), second(time)
시간(0~23), 분(0~59), 초(0~59)를 알려준다
period_add(p, n)
p(yymm 또는 yyyymm)에 n개월을 더하여 yyyymm 형식으로 리턴
period_diff(p1, p2)
yymm 또는 yyyymm 형식으로 주어진 두 기간 사이의 개월을 구한다
date_add(date, interval expr type), date_sub(date, interval expr type)
date_add는 adddate, date_sub는 subdate라고 해도 됨
expr은 가감하는 일수 또는 시간을 나타내는 표현식
- type
초 - second, seconds
분 - minute, minutes
시간 - hour, hours
일 - day, days
월 - month, months
년 - year, years
분:초 - minute_second, "minutes:seconds"
시:분 - hour_minute, "hours:minutes"
일 시 - day_hour, "days hours"
년 월 - year_month, "years-months"
시 분 - hour_second, "hours:minutes:seconds"
일,시,분 - day_minute, "days hours:minutes"
일,시,분,초 - day_second, "days hours:minutes:seconds"
to_days(date)
주어진 날짜를 0000년부터의 일수로 바꾼다
from_days(n)
주어진 일수 n로부터 날짜를 구한다
date_format(date, format)
format의 정의에 따라 날짜 혹은 시간을 출력
- format
%M : 월 이름 (january,...)
%W : 요일명 (sunday,...)
%D : 영어식 접미사를 붙인 일(1st, 2nd, ...)
%Y : 년도 (4자리로)
%y : 년도 (2자리로)
%b : 짧은 월 이름 (jan, ...)
%a : 짧은 요일명 (sun, ...)
%d : 일 (00, ..., 31)
%m : 월 (01, ..., 12)
%c : 월 (1, ..., 12)
%j : 한 해의 몇번째 요일인가 (001, ..., 366)
%H : 24시 형식의 시간 (00, ..., 23)
%k : 24시 형식의 시간 (0, ..., 23)
%h : 12시 형식의 시간 (01, ..., 12)
%I(대문자 i) : 12시 형식의 시간 (01, ..., 12)
%l(소문자 L) : 시간 (1, ..., 12)
%i : 분 (00, ..., 59)
%r : 시분초 12시 형식 (hh:mm:ss [ap]m)
%T : 시분초 24시 형식 (hh:mm:ss)
%S : 초 (00,,59)
%s : 초 (00,,59)
%p : am 또는 pm
%w : 일주일의 몇 번째 요일인가 (0=sun, ..., 6=sat)
%U : 한 해의 몇 번째 주인가 (0..52, 일요일이 시작일)
%u : 한 해의 몇 번째 주인가 (0..52, 월요일이 시작일)
%% : '%' 문자 - example
select date_format('1998-04-12 08:23:00', %w %m %y');
-> sunday april 1998
time_format(time, format)
date_format()과 비슷하나, 시분초만을 나타낼 수 있다
curdate(), current_date()
오늘 날짜를 yyyy-mm-dd 또는 yyyymmdd 형식으로 리턴
(이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라 달라짐)
- example
select curdate();
-> 2020-04-19
select curdate() + 0;
-> 20200419
curtime(), current_time()
현재 시간을 hh:mm:ss 또는 hhmmss 형식으로 나타냄
(이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라)
now(), sysdate(), current_timestamp()
오늘 날짜와 현재 시간을 yyyy-mm-dd hh:mm:ss 또는 yyyymmddhhmmss 형식으로 리턴
(이 함수가 문자열로 쓰이느냐 숫자로 쓰이느냐에 따라)
unix_timestamp(),unix_timestampe(date)
인수가 없이 사용될 경우 현재 시간의 유닉스 타임스탬프를 리턴하고,
날짜 형식의 date가 인수로 주어진 경우에는 주어진 날짜의 유닉스 타임스탬프를 리턴
(1970년 1월 1일 00:00:00 이후의 시간경과를 초 단위로 나타낸 것)
from_unixtime(unix_timestamp), from(unix_timestamp, format)
주어진 유닉스 타임스탬프 값으로부터 yyyy-mm-dd hh:mm:ss 또는 yyyymmddhhmmss 형식의 날짜를 리턴
두번째 인자 format이 주어질 경우 형식에 맞게 바꿔서 보여줌 (date_format 함수의 format과 동일)
sec_to_time(seconds)
주어진 초를 hh:mm:ss 또는 hhmmss 형식의 시간 단위로 바꿔준다
time_to_sec(time)
주어진 시간을 초 단위로 바꿔준다
'컴 > 데이터베이스' 카테고리의 다른 글
WITH문 (0) | 2022.11.13 |
---|---|
MySQL - WHERE절 (0) | 2020.04.28 |
MySQL - CASE 문 (0) | 2020.04.28 |
MySQL - group by, having (0) | 2020.04.18 |
프로그래머스 - SQL 연습 (0) | 2020.04.16 |