Database/MS-SQL

내장함수 (2) | Null 함수

ㅈㅣ니 2024. 8. 26.

날짜 및 시간 함수

 

날짜는 단순히 문자열로 저장하여 관리할 수 있지만 날짜형 데이터로 저장하여 관리하면 편리합니다.

날짜를 더하거나 차이를 구하는 연산을 쉽게할 수 있기 때문입니다.

 

 

날짜함수

 

날짜 함수에서 datepart 인자

 

 

DATEADD 함수

 

DATEADD()는 입력된 날짜에 사용자가 원하는 날짜만큼 더한 날짜를 반환하는 함수입니다.

아래는 DATEADD 함수를 활용한 예시입니다.

 

SELECT orderid "주문번호", orderdate "주문일", DATEADD(dd, 10, orderdate) "확정"
FROM Orders;

 

 

 

SYSDATETIME 함수

 

SYSDATETIME() 함수는 SQL Server의 현재 시간을 반환하는 함수입니다.

 

SELECT SYSDATETIME();
-- 현재시간

 



SELECT DAY(SYSDATETIME());
-- 현재 날짜

 

 

 

 

NULL 값 처리

 

집계 함수를 사용할 때 NULL 값이 포함된 행에 대하여 다음과 같은 주의가 필요합니다.

  • 'NULL + 숫자' 연산의 결과는 NULL
  • 집계 함수를 계산할 때 NULL 이 포홤된 행은 집계에서 빠집니다.
  • 집계 함수에 적용되는 행이 하나도 없으면 SUM, AVG 함수의 결과는 NULL이 되고,
    COUNT 함수의 결과는 0이 됩니다.

 

[ 예제 ]

Mybook 테이블

 

SELECT price+100
FROM Mybook
WHERE bookid=3;

 

 

SELECT SUM(price), AVG(price), COUNT(*),COUNT(price)
FROM Mybook

 

 

IS NULL , IS NOT NULL

 

NULL 값을 찾을 때는 '=' 연산자가 아닌 'IS NULL' 을 사용하고,

NULL 이 아닌 값을 찾을 때는 <> 연산자가 아닌 IS NOT NULL 을 사용합니다.

 

 

SELECT *
FROM Mybook
WHERE price is null;

 

 

 

 

ISNULL 함수

 

ISNULL() 함수는 NULL 값을 다른 값으로 대체하는 함수입니다.

 

ISNULL(A,B) 
A의 값이 Null 인 경우  B값으로 대체합니다.

 

SELECT name "이름", ISNULL(phone, '연락처없음') "전화번호"
FROM Customer

 

 

 

 

 

[추가]

Q) 양쪽 공백제거 하는 방법

-> TRIM() 사용 // SQL SERVER 2017버전부터 제공...
SELECT LTRIM(RTRIM('      공백제거       '))

 

 

Q) 문자열 함수에 문자 타입 안넣고 DATETIME 등… 다른 형식 데이터 넣으면 어케 되는것인지..

→ 자동으로 변환하지만, 그렇지 못한 경우도 있기 때문에, CONVERT 함수를 통해서 변환을 하는게 좋습니다.

 

 

반응형

'Database > MS-SQL' 카테고리의 다른 글

부속 질의 ( 스칼라 서브쿼리, 인라인 뷰)  (0) 2024.09.09
부속 질의 ( 서브 쿼리 )  (1) 2024.09.02
내장 함수  (0) 2024.08.15
[MS-SQL] 인덱스 (INDEX)란?  (4) 2024.08.12
[SQL] WHERE 절의 IN 연산자  (0) 2024.08.01