본문 바로가기
데이터 베이스/DB모델링

6.나만의 가계부를 만들어 보자 - mysql 날짜 계산

by 인생여희 2016. 12. 13.
반응형

-- 현재시간에서 하루 + 1

select date_add(now(), INTERVAL +1 DAY);

select date_add(curdate(), INTERVAL +1 DAY);

-- 현재시간에서 하루 - 1

select date_add(now(), INTERVAL -1 DAY);

select date_add(curdate(), INTERVAL -1 DAY);

-- 현재시간에서 + 한달

select date_add(now(), interval +1 month);

-- 현재시간에서 - 한달

select date_add(now(), interval -1 month);

-- 조건

한달전 : where reg_date >= date_add(now(), interval -1 month)

 하루전 : where reg_date >= date_add(now(), interval -1 day)

한시간전 : where reg_date >= date_add(now(), interval -1 hour)




MySQL] 날짜 차이 구하기


형식) MySQL프롬프트> SELECT TO_DAYS(DATE) - TO_DAYS(DATE);

) 2010215일과 2010125일의 차이 구하기

mysql> SELECT TO_DAYS('2010-02-15') - TO_DAYS('2010-01-15' ) AS CHA;

) 2010년의 설날연휴인 2010213일은 오늘부터 몇 일 남았나 구하기

mysql> SELECT TO_DAYS('2010-02-13') - TO_DAYS(now()) AS CHA;

TO_DAYS 함수는 기본 인자로 DATE 형을 취하기 때문에 아래와 같이 CAST함수를 이용해서 DATE형으로 형변환 해서 쓰실 수도 있습니다.

mysql> SELECT TO_DAYS(CAST('2010-03-01' AS DATE)) - TO_DAYS(CAST('2010-01-25' AS DATE)) AS CHA;


MySQL 오늘기준으로 최근 한달 동안 데이터 가져오기

긴 말이 필요 없습니다. 기준이 되는 데이터 칼럼만 있다면 BETWEEN DATE_ADD() 함수를 이용해서

간단하게 가져올 수가 있습니다.


SELECT seq, title FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 MONTH ) AND NOW();



그럼 오늘 기준으로 최근 일주일 동안 데이터를 가져올려면 어떻게 해야 할까요.

아래와 같이 MONTHWEEK로만 바꿔 주시면 됩니다.

SELECT seq, title FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 WEEK ) AND NOW();


From : 높이뜬새(www.webmadang.net)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- 현재시간에서 하루 + 1
select date_add(now(), INTERVAL +1 DAY);
select date_add(curdate(), INTERVAL +1 DAY);
-- 현재시간에서 하루 - 1
select date_add(now(), INTERVAL -1 DAY);
select date_add(curdate(), INTERVAL -1 DAY);
-- 현재시간에서 + 한달
select date_add(now(), interval +1 month);
-- 현재시간에서 - 한달
select date_add(now(), interval -1 month);
 
-- 조건
 한달전 : where reg_date >= date_add(now(), interval -1 month)  
 하루전 : where reg_date >= date_add(now(), interval -1 day)  
 한시간전 : where reg_date >= date_add(now(), interval -1 hour)   
  
 
MySQL] 날짜 차이 구하기
 
 
형식) MySQL프롬프트> SELECT TO_DAYS(DATE) - TO_DAYS(DATE);
예) 2010년 2월15일과 2010년1월25일의 차이 구하기
mysql> SELECT TO_DAYS('2010-02-15'- TO_DAYS('2010-01-15' ) AS CHA;
예) 2010년의 설날연휴인 2010년 2월13일은 오늘부터 몇 일 남았나 구하기
mysql> SELECT TO_DAYS('2010-02-13'- TO_DAYS(now()) AS CHA;
※ TO_DAYS 함수는 기본 인자로 DATE 형을 취하기 때문에 아래와 같이 CAST함수를 이용해서 DATE형으로 형변환 해서 쓰실 수도 있습니다.
mysql> SELECT TO_DAYS(CAST('2010-03-01' AS DATE)) - TO_DAYS(CAST('2010-01-25' AS DATE)) AS CHA;
 
MySQL 오늘기준으로 최근 한달 동안 데이터 가져오기
 긴 말이 필요 없습니다. 기준이 되는 데이터 칼럼만 있다면 BETWEEN 과 DATE_ADD() 함수를 이용해서
간단하게 가져올 수가 있습니다.
 SELECT seq, title FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 MONTH ) AND NOW();
 그럼 오늘 기준으로 최근 일주일 동안 데이터를 가져올려면 어떻게 해야 할까요.
아래와 같이 MONTH를 WEEK로만 바꿔 주시면 됩니다.
 SELECT seq, title FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 WEEK ) AND NOW();
   
From : 높이뜬새(www.webmadang.net)
cs


반응형

댓글