SQL DATEDIFF MY/MS

성난호랑이 시니철 ㅣ 2016. 2. 11. 18:34


MS SQL


날짜를 비교해준다.


getdate()  현제날짜   getdate()+1 현제 날짜에 하루 더해준것이다.


select DATEDIFF ( mi , getdate() , getdate()+1 ) ==> 1440 분 (1일)

select DATEDIFF ( s , getdate() , getdate()+1 ) ==> 86400 초 (1일)

select DATEDIFF ( hour , getdate() , getdate()+1 ) ==> 24 시간 (1일)

select DATEDIFF ( day , getdate() , getdate()+1 ) ==> 1 일 (1일)

select DATEDIFF ( week , getdate() , getdate()+31 ) ==> 4 주 (31일)

select DATEDIFF ( month , getdate() , getdate()+31 ) ==> 1 개월 (31일)

select DATEDIFF ( year , getdate() , getdate()+730 ) ==> 2 년 (730일)




MY SQL


SELECT DATEDIFF('2014-11-30','2014-11-29') AS DiffDate


DiffDate
1

일 단위로만 표시 된다.  mysql에서는 mssql하고 다르게 일단위밖에 표시가 안된다.


월단위를 표시하고싶으면


SELECT period_diff ('201511', '201310') as month


이렇게 사용하면 된다.  이렇게 사용할려면 - 특수문자를 지워주고 사용해야된다.


아니면 또다른 방법으로


abs(((year(startdate) * 12) + month(startdate)) - ((year(enddate) * 12) + month(enddate)))


사용하면된다.


위처럼 일보다 작은 단위를 비교하고싶으면  TIMESTAMPDIFF 사용하면 됩니다.


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초