공부/SQL
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초