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

db20

[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] 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.
[MSSQL] FORMAT 함수 사용법 (TO_CHAR, 날짜, 소수점) SQL Server 2012 버전부터 FORMAT 함수가 추가되었다. 오라클에서는 TO_CHAR 함수를 사용하여 날짜 형식을 문자열로 쉽게 변환을 할 수 있고, MSSQL에서는 CONVER 함수를 사용하여 변환이 가능하지만 조금 아쉬운 면이 있었다. FORMAT 함수를 사용하여 오라클의 TO_CHAR 함수에서 가능했던 3가지 사용법을 소개한다. 날짜 문자열 변환 수치값 천단위 콤마 찍기수치값 소주점 표시 | 날짜 문자열 변환 SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS result1 , FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS result2 오라클에서 날짜를 문자열로 변환하던 비슷한 형식으로 사용이 가능하다. SELECT FORMAT(G.. 2022. 4. 19.