출처 : 날짜 비교



select * from table where (DATEDIFF(strEndDate,strStartDate)> 5 and DATEDIFF(strEndDate,strStartDate)<= 10)


DATEDIFF(strEndDate,strStartDate) > 5   

일수 함수끝나는 기간, 시작하는 기간 5보다 큰값



'IT > [DB]MySql' 카테고리의 다른 글

MYSQL] AES 암호화 복호화  (0) 2014.04.02
databasename 언어변경  (0) 2014.01.20
order by문 case문쓰기  (0) 2013.12.03
mysql 자동증가 atler문  (0) 2013.10.08
[mysql] 다양한 시간차 구하기  (0) 2013.08.26
mysql 에서 두 날짜사이의 시간차를 구하려면 보통 datediff 함수를 많이 사용합니다.

datediff(날짜1, 날짜2) 를 하면 두 날짜사이의 차이나는 일자를 숫자값으로 반환합니다.
 
예를들어 다음과 같이, 현재시간(now())에 1일을 더하여, datediff 로 두 날짜를 빼면, 
다음과 같이 1값을 반환합니다.

SELECT datediff(DATE_ADD(now(),INTERVAL 1 DAY), now()) dd ==> 1

즉 1일이 차이가 나는것을 알 수 있습니다.
 
하지만 다음과 같이 현재시간에다가 한시간을 더하여, datediff 로 현재시간과 차이를
구하면 0값을 반환합니다.

SELECT datediff(DATE_ADD(now(),INTERVAL 1 HOUR), now()) dd ==> 0
 
즉 datediff 는 일단위의 차이를 구하는 함수라, 그보다 작은 단위의 시간차는 구할 수 없습니다.
 
대신 mysql 의 TIMESTAMPDIFF 함수를 이용하시면, 다양한 단위의 시간차값을 구하실 수 있습니다.
 
다음과 같이 현재시간과 한시간 후의 시간의 차이값을 각각 단위값을 HOUR, MINUTE, SECOND 
구분값을 주게되면, 각각 시간단위, 분단위, 초단위 시간차 값을 반환하게 됩니다.
 
SELECT TIMESTAMPDIFF(HOUR, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 1시간
SELECT TIMESTAMPDIFF(MINUTE, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 60분
SELECT TIMESTAMPDIFF(SECOND, now(), DATE_ADD(now(),INTERVAL 1 HOUR)) dd ==> 3600초
 
이를 이용하여 일보다 작은 단위의 시간차값을 구하실 수 있습니다.
 



'IT > [DB]MySql' 카테고리의 다른 글

MYSQL] AES 암호화 복호화  (0) 2014.04.02
databasename 언어변경  (0) 2014.01.20
order by문 case문쓰기  (0) 2013.12.03
mysql 자동증가 atler문  (0) 2013.10.08
[mysql] 날짜 비교  (0) 2013.08.26

+ Recent posts