[MySQL] 날짜 함수

SQL 2015. 7. 9. 09:59
728x90

MySQL 의 날짜, 시간함수에 대해 알아보자.

from dual 의 dual 은 실제 테이블이 아니라, MySQL 에서 기본 제공한다. MySQL 이 제공하는 기본 함수 이해는 직접 명령어를 입력해보는 것이다.


1. 현재 날짜

select curdate() from dual;


2. 현재 시간

select curtime() from dual;


3. now()

select now() from dual;


4. 날짜 형식 변환

select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s') from dual;

* Y : 4자리 연동, y : 2자리 연도, m : 2자리 월

   H : 24시간 형식, h : 12시간 형식, i : 2자리 분, s : 2자리 초


select date_format(now(),'%Y-%m-%d') from dual;


DB에 있는 특정 필드의 값을 표현한다고 할때를 가정하고 직접 날짜를 입력했다.


5. 날짜의 요일을 숫자로 반환하는 dayofweek

요일의 시작은 일요일 1, 월요일 2, 화요일 3, 수요일 4, 목요일 5, 금요일 6, 토요일이 7이다.

select dayofweek(sysdate()) from dual;

* sysdate()는 이 함수가 실행되는 서버 시간을 가져오고, 다른 함수들은 쿼리가 실행되는 시간을 가져온다.


select dayofweek('20140527') from dual;



6. 날짜의 요일을 숫자로 반환하는 Weekday

월요일 0, 화요일 1, 수요일 2, 목요일 3, 금요일 4, 토요일 5, 일요일 6을 반환

select weekday(sysdate()) from dual;


7. dayofyear : 1월 1일부터 해당날짜까지의 날짜수를 반환. 결과값은 1 ~ 366

select dayofyear(sysdate()) from dual;



8. 1월 1일부터 해당날짜까지의 주수를 반환

 select week(sysdate(), 0) from dual;


9. 특정한 날짜 기준으로 이전/이후 날짜를 계산

날짜를 계산하기 위해서 보통 date_add 함수를 사용한다.


select now(), DATE_ADD(now(), interval 3 month) from dual; -- 지금날짜와 3개월 후의 날짜를 출력


select date_add(sysdate(), interval -10 day) from dual; -- 10일전의 날짜


select date_sub(sysdate(), interval 1 day) from dual;


 select date_add(sysdate(), interval 1 month) from dual;


* interval 숫자 Type → second(초), minute(분), hour(시간), day(일), week(주), month(월), year(년)


select * from tableName
where (date between 시작날짜 AND 마지막날짜)
AND IF(date=시작날짜, time>=시작시간, IF(date=마지막날짜, time<=마지막시간, 1))";






블로그 이미지

Link2Me

,