MSSQL 6

[MSSQL] 날짜 년,월,일 가져오기 + 날짜 계산

년, 월, 일 가져오기 SELECT year(getdate())--년도 2021 SELECT month(getdate())-- 월 10 SELECT day(getdate())--일 26 날짜 계산 SELECT DATEADD(ss, 1, getDate())--1초 뒤 SELECT DATEADD(mi, 1, getDate())--1분 뒤 SELECT DATEADD(hh, 1, getDate())--1시간 뒤 SELECT DATEADD(dd, 1, getDate())--1일 뒤 SELECT DATEADD(mm, 1, getDate())--1달 뒤 SELECT DATEADD(yy, 1, getDate())--1년 뒤 --이전의 시간을 가져오고 싶다면 마이너스를 써줌 SELECT DATEADD(dd, -1, ge..

MSSQL 2021.10.26

[MSSQL] 여러 행을 한 줄로 나타내는 방법

#temp 테이블 name clor 1 apple red 2 banana yellow 3 peach pink 4 melon green 1. for xml path 사용 for xml path를 사용하면 결과가 xml태그로 나온다. 하지만 우린 xml태그는 필요 없기 때문에 3번째 줄처럼 select ','+name라고 써준다. 그러면 결과는 ,apple,banana,peach,melon 라고 나온다. 여기서 첫 번째 콤마는 필요 없기 때문에 이 콤마를 제거해준다. substring이나 replace같은 방법도 있지만 STUFF를 사용해서 첫 번째 콤마만 제거해주었다. SELECT STUFF(( SELECT ',' + name FROM #temp WHERE 1=1 FOR XML PATH('') ),1,1,..

MSSQL 2021.08.02

[MSSQL] convert를 이용한 날짜 형식 변환 표

convert로 날짜 타입을 변환할 때 사용되는 코드이다. select CONVERT(varchar(20), getdate(), [코드입력]) 위의 쿼리로 실행했을 때의 결과를 [예시] 칼럼에 기재했다. 두 자리 연도(yy) 네 자리 연도(yyyy) 결과 예시 - 0 또는 100 mon dd yyyy hh:miAM(또는 PM) 07 29 2021 12:05PM 1 101 1 = mm/dd/yy 101 = mm/dd/yyyy 07/29/21 07/29/2021 2 102 2 = yy.mm.dd 102 = yyyy.mm.dd 21.07.29 2021.07.29 3 103 3 = dd/mm/yy 103 = dd/mm/yyyy 29/07/21 29/07/2021 4 104 4 = dd.mm.yy 104 = dd..

MSSQL 2021.07.29

[MSSQL] where절에 if문 같은 조건 사용하기

프로시저에서 데이터 조회 쿼리를 짤 때 where절에서 파라미터 값에 따라 다른 조건을 넣어줘야 하는 경우가 생겼다. sql실행문을 string변수에 담아 실행하는 방법도 있지만 이미 짜 놓은 쿼리가 있어서 전부 string형으로 변경하려면 시간이 꽤 소요될 것 같았다. create table #temp_table ( fruit varchar(10), quantity int ) insert into #temp_table values('apple',2) insert into #temp_table values('pear',0) insert into #temp_table values('banana',3) insert into #temp_table values('strawberry',0) insert into ..

MSSQL 2021.05.21

[MSSQL] 조건문 CASE WHEN 사용 예제

유저 아이디, 티어, 플레이 시간이 다음과 같이 저장되어 있는 Temp_user 테이블에서 case문을 이용해 데이터를 가져올 것이다. userId tear play_time -------- -------- ----------- player1 1 100 player2 2 1500 player3 3 350 player4 1 980 player5 2 90 player6 3 1900 유저의 티어 값에 따라 [골드][실버][브론즈]로 나타내는데 브론즈일 경우 플레이 시간이 1000시간 이상이라면 티어를 [심해]로 가져오자. SELECT userId AS 아이디, play_time AS 플레이시간, CASE WHEN tear = '1' THEN '골드' WHEN tear = '2' THEN '실버' WHEN te..

MSSQL 2021.04.02