본문 바로가기

데이터베이스35

날짜 쿼리 이번달 날짜 비교를 하려고하니 이런게 나온다.. select a.Date from ( select LAST_DAY('2018-11-01' - interval 1 month) - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a cross join (select 0 as a union all select 1 union a.. 2018. 11. 27.
BETWEEN https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/between-transact-sql?view=sql-server-2017BETWEEN 으로 날짜조회시 getdate() BETWEEN start_date and end_date형태로 뽑는다는 가정을하면2018-11-20 between '2018-11-01' and '2018-11-20' 이라는 쿼리를 하게되면2018-11-20일은 제외된다. 2018-11-20 00:00:00 까지 조회가 되니 당연한 결과긴하다. 원하는 형태를 구하기 편하게 하려면 여러가지 방법이 있긴하다만 그냥 하루 더하자 getdate() BETWEEN start_date and DATEADD(d,1,end_date) 2018. 11. 20.
expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다. int값을 SUM했을때 오류발생시 int값은 SUM을 해도 최대 21억의 값이 넘어가면 오버플로우가 발생한다.데이터 형식범위저장소bigint-2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807)8바이트int-2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647)4바이트smallint-2^15(-32,768) ~ 2^15-1(32,767)2바이트tinyint0 ~ 2551바이 int값을 bigint값으로 변환하여 처리한다 CONVERThttps://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-20.. 2018. 11. 19.
ORDER BY string as number ORDER BY를 하려고하다보면 STRING형태로 저장된 INT값이 있다1,2,3,4, ... 10데이터베이스에서는1102345 해당형태로 출력될것이다. 그럴때는 SELECT * FROM TABLEORDER BY LEN(col), col일단 길이순으로 잡고 그다음은 숫자순으로 잡으면 원하는 형태의 정렬이 될것이다. 또 다른방법으로는 ABS를 이용한방법SELECT * FROM TABLEORDER BY ABS(col) 2018. 11. 6.
TINYBLOB, BLOB, MEDIUMBLOB and LONGBLOB 자료형 TINYBLOB, BLOB, MEDIUMBLOB and LONGBLOBA binary large object that can hold a variable amount of binary data. The sorting and comparison of the values for these objects is performed in case-sensitive manner.TINYBLOBA binary large object column with a maximum length of 255 (2^8 - 1) characters.BLOBA binary large object column with a maximum length of 65535 (2^16 - 1) characters.MEDIUMBLOBA binary .. 2018. 11. 2.
OFFSET FETCH 절 (페이징,LIMIT) MSSQL 2012전에는 페이징을 만들때 between을이용해서 만들어야했다. 하지만 2012에서는 OFFET FETCH절을 이용해서 해당효과를 얻을수 있다. https://technet.microsoft.com/ko-kr/library/gg699618(v=sql.110).aspx 제약사항 1. order by절이 꼭 필요하다. 2. fetch를 사용하려면 꼭 offset절이 필요하다. 예제1 SELECT * FROM TABLE ORDER BY column OFFSET 10 ROWS; 해당형태의 쿼리는 첫 10개의 행을 건너뛰고 나머지행을 반환한다. 예제2 SELECT * FROM TABLE ORDER BY column OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; 10개를 건너.. 2018. 8. 8.
INSERT 문의 행 값 식 수가 최대 허용 행 값 수 1000을(를) 초과합니다. 1. 오류현상Microsoft OLE DB Provider for SQL Server 오류 '80040e14'INSERT 문의 행 값 식 수가 최대 허용 행 값 수 1000을(를) 초과합니다.2. 검색https://msdn.microsoft.com/ko-kr/library/dd776382(v=sql.120).aspx테이블 값 생성자는 INSERT … VALUES 문의 VALUES 목록에서 직접 사용되거나, 파생 테이블이 허용되는 모든 위치의 파생된 테이블로 사용될 수 있습니다. VALUES 목록에 직접 행을 삽입하여 생성할 수 있는 최대 행 수는 1000개입니다. 이 경우 행 수가 1000개를 초과하면 오류 10738이 반환됩니다. 1000개 이상의 행을 삽입하려면 다음 방법 중 하나를 사용합니다.ins.. 2018. 8. 8.
CAST 및 CONVERT(Transact-SQL) 자주쓰는데 매번 까먹어서 적는 CAST, CONVERT https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017SELECT 9.5 AS Original, CAST(9.5 AS int) AS int, CAST(9.5 AS decimal(6,4)) AS decimal; SELECT 9.5 AS Original, CONVERT(int, 9.5) AS int, CONVERT(decimal(6,4), 9.5) AS decimal;결과값Original int decimal 9.5 9 9.5000 -- CAST Syntax: CAST ( expression AS data_type [ ( l.. 2018. 7. 24.
MSSQL 오늘 convert를 이용하여 처리https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 3개의 인자값을 갖는다. 날짜및 시간스타일을 이용하지만20 또는120 (2)ODBC 표준yyyy-mm-dd hh:mi:ss(24h)20또는 120 사용시 ODBC 표준을 이요한다. 해당형태로 쿼리를 하게되면 SELECT convert(varchar(10),getdate(),120)오늘의 날짜를 반환한다.쿼리 결과값 : 2018-07-11 필요한 오늘값을 가져오기위한 쿼리는 SELECT .. 2018. 7. 11.