SQL

[MSSQL] DATEDIFF() 이용한 Year, Month, Day 날짜 차이 구하기

Jane Kwon 2021. 4. 27. 11:10
반응형

 

예를 들어, 넷플릭스 서비스를 신청한 고객이 있다.

no        user_id       service_name       start_date                   end_date	
0001      janes         netflix            2021-03-27 23:59:59.000      2022-06-27 23:59:59.000

그 고객이 서비스가 끝나는 날로부터 며칠이 남았는지

remaining 컬럼을 추가로 알고 싶다. (오늘은 2021년 4월 27일)

SELECT *, DATEDIFF(DAY, GETDATE(), end_date) AS remaining FROM SERVICE_TABLE WHERE no = 0001
no        user_id       service_name       start_date                   end_date                    remaining
0001      janes         netflix            2021-03-27 23:59:59.000      2022-06-27 23:59:59.000     426

너무 많은 날이 남아서 몇 달이 남았는지 알고 싶다.

SELECT *, DATEDIFF(MONTH, GETDATE(), end_date) AS remaining FROM SERVICE_TABLE WHERE no = 0001
no        user_id       service_name       start_date                   end_date                    remaining
0001      janes         netflix            2021-03-27 23:59:59.000      2022-06-27 23:59:59.000     14

마지막으로 고객이 서비스 만료일로부터 몇 년이 남았는지 알고 싶다

SELECT *, DATEDIFF(YEAR, GETDATE(), end_date) AS remaining FROM SERVICE_TABLE WHERE no = 0001
no        user_id       service_name       start_date                   end_date                    remaining
0001      janes         netflix            2021-03-27 23:59:59.000      2022-06-27 23:59:59.000     1

(참고 : www.mssqltips.com/sqlservertip/6218/update-only-year-month-or-day-in-a-sql-server-date/mirwebma.tistory.com/178)

 

 

 

 

 

반응형