MySQL 날짜 연산쿼리
페이지 정보
본문
이전에 서비스 기간 연장 신청 프로그램을 만들때
mktime과 unixtime을 이용해서 연산식을 만들어 사용을 했었습니다.
윤년에 대한 처리도 해야 하고, 30일, 31일에 따라 검증도 해야 했습니다.
별거 아닌건데.. 무지 귀찮게 하구요... 생각보다 연산오류가 생기는 경우가 많죠...
찾다 보니 아주 좋은 mysql쿼리가 있더군요. 날짜연산을 DB에서 연산을 해서 보여줍니다.
예외처리는 윤년처리 30일 31일처리도 mysql에서 알아서 해줍니다 ^^
SELECT ('2007-11-16' - INTERVAL 1 MONTH) AS a;
SELECT ('2007-11-16' + INTERVAL 1 DAY) as b;
SELECT ('2007-11-16' + INTERVAL 1 YEAR) as c;
위를 보시면 1달 만큼 더하고 싶으면 1 MONTH, 1년은 1 YEAR, 하루는 1 DAY입니다.
빼기도 마찬가지로 '+'를 '-'로 변경만 하시면 됩니다.
그리고 UNIXTIME의 경우는
SELECT UNIX_TIMESTAMP(('2007-11-16' - INTERVAL 1 MONTH)) AS a;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 DAY)) as b;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 YEAR)) as c;
위의 쿼리를 찍어보시면 각각 일자 시작 값(2007.11.19 00:00:00)을 unixtime으로 반환합니다.
일자 끝을 표시하시려면
SELECT UNIX_TIMESTAMP(('2007-11-16' - INTERVAL 1 MONTH)) + 86399 AS a;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 DAY)) + 86399 as b;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 YEAR)) + 86399 as c;
이렇게 하시면 됩니다 ^^
관련자료
http://www2.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57366
mktime과 unixtime을 이용해서 연산식을 만들어 사용을 했었습니다.
윤년에 대한 처리도 해야 하고, 30일, 31일에 따라 검증도 해야 했습니다.
별거 아닌건데.. 무지 귀찮게 하구요... 생각보다 연산오류가 생기는 경우가 많죠...
찾다 보니 아주 좋은 mysql쿼리가 있더군요. 날짜연산을 DB에서 연산을 해서 보여줍니다.
예외처리는 윤년처리 30일 31일처리도 mysql에서 알아서 해줍니다 ^^
SELECT ('2007-11-16' - INTERVAL 1 MONTH) AS a;
SELECT ('2007-11-16' + INTERVAL 1 DAY) as b;
SELECT ('2007-11-16' + INTERVAL 1 YEAR) as c;
위를 보시면 1달 만큼 더하고 싶으면 1 MONTH, 1년은 1 YEAR, 하루는 1 DAY입니다.
빼기도 마찬가지로 '+'를 '-'로 변경만 하시면 됩니다.
그리고 UNIXTIME의 경우는
SELECT UNIX_TIMESTAMP(('2007-11-16' - INTERVAL 1 MONTH)) AS a;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 DAY)) as b;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 YEAR)) as c;
위의 쿼리를 찍어보시면 각각 일자 시작 값(2007.11.19 00:00:00)을 unixtime으로 반환합니다.
일자 끝을 표시하시려면
SELECT UNIX_TIMESTAMP(('2007-11-16' - INTERVAL 1 MONTH)) + 86399 AS a;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 DAY)) + 86399 as b;
SELECT UNIX_TIMESTAMP(('2007-11-16' + INTERVAL 1 YEAR)) + 86399 as c;
이렇게 하시면 됩니다 ^^
관련자료
http://www2.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57366
댓글목록
등록된 댓글이 없습니다.