본문 바로가기
  • [성공하는 개발자] - Developer

DataBase/MSSQL39

[MSSQL] 이전 행, 다음 행 값 가져오기 (LAG, LEAD) SQL Server 2012부터 이전 행과 다음 행의 값을 가져올 수 있는 LAG, LEAD 함수가 추가되었다. LAG 함수를 사용하면 이전 행의 값과 현재 행의 값을 비교하여 값이 변경되었는지 쿼리상에서 쉽게 판별이 가능하다. 기본 사용법 ■ 이전 행 값 (LAG) SELECT empno , ename , job , LAG(job) OVER(ORDER BY job, empno) AS job_prev FROM emp WHERE job IN ('MANAGER', 'ANALYST', 'SALESMAN') ORDER BY job, empno LEAD 함수를 사용하여 이전 행의 값을 가져올 수 있다. WHERE 절 하단의 ORDER BY의 정렬 순서와 상관없이 OVER 절 내부의 ORDER BY 기준으로 정렬 .. 2022. 7. 19.
[MSSQL] 날짜, 시간 차이 일수 계산 (DATEDIFF) SQL Server에서 시작일자와 종료일자 사이의 일수 또는 시간, 분, 초 등의 차이를 계산할 때 DATEDIFF 함수를 사용한다. DATEDIFF 함수는 두 날짜를 비교하여 DATEPART 구분자에 따라서 차이를 계산하여 결과를 정수로 반환한다. ■ 날짜 차이 계산 SELECT DATEDIFF(DAY, '2021-06-12', '2021-07-13') AS [일차이] , DATEDIFF(MONTH, '2021-06-12', '2021-07-13') AS [개월차이] , DATEDIFF(YEAR, '2021-06-12', '2021-07-13') AS [년차이] DAY : 시작일자와 종료일자 사이의 일수를 반환 MONTH, YEAR : 월, 년이 바뀐 횟수를 반환 (주의: 30일을 1개월 또는 365일.. 2022. 7. 14.
[MSSQL] 날짜, 시간 더하기 빼기 (DATEADD) SQL Server에서는 날짜, 시간을 더하거나 빼기 위해서는 DATEADD 함수를 사용한다. 현재 날짜에서 하루를 빼서 전일 데이터를 조회할 수 있으며, 일자외에도 년 월 시간 등 기준일자에 원하는 기간 만큰 쉽게 더하거나 뺄수 있다. 날짜 빼기, 더하기 (년, 월, 일) ■ 일 계산 (DAY) SELECT DATEADD(DAY, -10, '2021-07-12') AS [10일전] , DATEADD(DAY, 10, '2021-07-12') AS [10일후] ■ 월 계산 (MONTH) SELECT DATEADD(MONTH, -1, '2021-07-12') AS [1개월전] , DATEADD(MONTH, 1, '2021-07-12') AS [1개월후] ■년 계산 (YEAR) SELECT DATEADD(HO.. 2022. 7. 11.
[MSSQL] DATENAME 함수 사용법 (요일, 분기, 날짜분리) SQL Server에서 날짜 형식에서 년, 월, 일을 분리하거나 해당 날짜의 요일(weekday), 분기 등을 구하기 위해서는 DATENAME 함수를 사용하면 된다. 그리고 올해로부터 며칠째 인지 또는 몇 주째 인지도 구할 수 있다. DATENAME 함수는 DATEPART 함수와 거의 유사하다. 차이라고 하면 DATENAME 함수는 결과를 문자로 반환하고, DATEPART 함수는 정수로 반환한다. 월(month)과 요일(weekday) 부분을 제외하면 두 함수 모두 동일하다. | 날짜 분리 하기 SELECT DATENAME(YEAR, GETDATE()) AS [year] , DATENAME(MONTH, GETDATE()) AS [month] , DATENAME(DAY, GETDATE()) AS [day].. 2022. 4. 19.