본문 바로가기
데이타베이스/MySQL

날짜, 시간 데이터 처리 예제

by 로드러너 2015. 6. 18.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1) 현재 날자와 시간을 얻는다.

SQL : SELECT SYSDATE(); 
결과 : 2015-06-18 11:42:41

SQL : SELECT NOW(); 
결과 : 2015-06-18 11:42:41


2) 현재 시간을 얻는다.

SQL : SELECT CURTIME(); 
결과 : 11:44:46


3) 현재 날자를 얻는다.
SQL : SELECT CURDATE();
결과 : 2015-06-18 


4) 일수 더하기 
SQL : SELECT DATE_ADD('20150618', INTERVAL 5 DAY); 
SQL : SELECT DATE_ADD('2015-06-18', INTERVAL 5 DAY); 
SQL : SELECT DATE_ADD('2015/06/18', INTERVAL 5 DAY); 
SQL : SELECT ADDDATE('20150623', 5);
결과 : 3가지 SQL 모두 2015-06-23 을 표시한다.

SQL : SELECT DATE_ADD(NOW(), INTERVAL 5 DAY); 
SQL : SELECT ADDDATE(NOW(), 5);
결과 : SQL이 실행된 시점의 시분초까지 표시한다.   2015-06-23 11:49:31

SQL : SELECT PERIOD_ADD('20150618', 5);
결과 : 201506


5) 주 더하기
SQL : SELECT DATE_ADD('20130505', INTERVAL 5 WEEK); 


6) 달 더하기
SQL : SELECT DATE_ADD('20130505', INTERVAL 5 MONTH); 


7) 년 더하기
SQL : SELECT DATE_ADD('20130505', INTERVAL 5 YEAR); 


8) 일수 빼기 
SQL : SELECT DATE_SUB('20150618', INTERVAL 5 DAY); 
SQL : SELECT DATE_SUB('2015-06-18', INTERVAL 5 DAY); 
SQL : SELECT DATE_SUB('2015/06/18', INTERVAL 5 DAY); 
SQL : SELECT SUBDATE('20150618', 5); 
결과 : 4가지 SQL 모두 2015-06-13 을 표시한다.

SQL : SELECT DATE_SUB(NOW(), INTERVAL 5 DAY);
SQL : SELECT SUBDATE(NOW(), 5);
결과 : SQL이 실행된 시점의 시분초까지 표시한다.   2015-06-13 11:55:06


9) 해당 일자가 속하는 달의 마지막 날
SQL : SELECT LAST_DAY('20130505'); 


10) 해당 일자가 속하는 달의 첫번재 날
SQL : SELECT ADDDATE(LAST_DAY(DATE_SUB('20130505', INTERVAL 1 MONTH)), 1);


11) 일자만 얻는다.
SQL : SELECT EXTRACT(DAY FROM "20150618"); 
SQL : SELECT DAY("20150618");

12) 달만 얻는다.
SQL : SELECT EXTRACT(MONTH FROM "20150618"); 
SQL : SELECT MONTH("20150618");


13) 년도만 얻는다.
SQL : SELECT EXTRACT(YEAR FROM "20150618"); 


14) 년도만 얻는다.
SQL : SELECT YEAR("20150618"); 


15) 주차 계산
SQL : SELECT WEEK("20150618"); 


16) 분기 계산
SQL : SELECT QUARTER("20150618"); 


17) 해당일자가 속하는 주의 특정 요일의 날짜
일요일
SQL : SELECT DATE_ADD("20150618", INTERVAL(DAYOFWEEK("20150618")-1) * -1 DAY); 

월요일
SQL : SELECT DATE_ADD("20150618", INTERVAL(DAYOFWEEK("20150618")-2) * -1 DAY); 

화요일
SQL : SELECT DATE_ADD("20150618", INTERVAL(DAYOFWEEK("20150618")-3) * -1 DAY); 


18) 두 날짜의 일수 차이
SQL : SELECT DATEDIFF("20150618"', "20150518") DATE FROM DUAL; 


19) 해당 날짜의 요일
SQL : SELECT DAYOFWEEK("20150618"); 
결과 : 목요일에 해당하는 숫자 5


20) 해당 날자의 요일명
SQL : SELECT DAYNAME("20150618"); 


21) 요일명 추출
SQL : SELECT MONTHNAME("20150618"); 
결과 : Thursday


22) DATE ->STRING FORMAT 변환
SQL : SELECT DATE_FORMAT("20150618", "'%Y-%m-%d"); 
결과 : 2015-06-18


23) STRING -> DATE FORMAT 변환

SQL : SELECT STR_TO_DATE("20150618", "%Y%m%d"); 

SQL : SELECT STR_TO_DATE("2015-06-18", "%Y-%m-%d"); 



참고 http://rex4314.blog.me/220283928862