BOOK

[Do it SQL] Chapter 06-3/ 06-4

Minch13r 2025. 3. 31. 21:59

1. SQL 숫자 함수

숫자 함수는 데이터베이스에서 숫자 데이터를 처리하고 계산하는 데 사용됩니다. 각 데이터베이스 시스템(MySQL, Oracle, SQL Server 등)마다 약간의 차이가 있을 수 있으나, 대부분의 기본 함수는 공통적입니다.

ABS(x) - 절대값

숫자의 절대값을 반환합니다. 즉, 부호를 제거하고 항상 양수 값을 반환합니다.

SELECT ABS(-15);  -- 결과: 15
SELECT ABS(15);   -- 결과: 15

ROUND(x, d) - 반올림

숫자 x를 소수점 d자리까지 반올림합니다. d를 생략하면 정수로 반올림합니다.

SELECT ROUND(123.456, 2);  -- 결과: 123.46
SELECT ROUND(123.456, 0);  -- 결과: 123
SELECT ROUND(123.456, -1); -- 결과: 120 (10의 자리에서 반올림)

CEIL(x) / CEILING(x) - 올림

x보다 크거나 같은 가장 작은 정수를 반환합니다.

SELECT CEIL(123.45);  -- 결과: 124
SELECT CEILING(123.01); -- 결과: 124

FLOOR(x) - 내림

x보다 작거나 같은 가장 큰 정수를 반환합니다.

SELECT FLOOR(123.95); -- 결과: 123
SELECT FLOOR(-123.95); -- 결과: -124

TRUNCATE(x, d) - 버림

숫자 x를 소수점 d자리까지 자릅니다(버림). d가 음수이면 정수 부분에서 해당 자릿수만큼 0으로 만듭니다.

SELECT TRUNCATE(123.456, 2); -- 결과: 123.45
SELECT TRUNCATE(123.456, 0); -- 결과: 123
SELECT TRUNCATE(123.456, -1); -- 결과: 120

MOD(x, y) / x % y - 나머지

x를 y로 나눈 나머지를 반환합니다.

SELECT MOD(15, 4);  -- 결과: 3
SELECT 15 % 4;      -- 결과: 3 (대부분의 SQL에서 지원)

SIGN(x) - 부호

숫자 x의 부호를 반환합니다. 양수면 1, 음수면 -1, 0이면 0을 반환합니다.

SELECT SIGN(15);    -- 결과: 1
SELECT SIGN(-15);   -- 결과: -1
SELECT SIGN(0);     -- 결과: 0

2. SQL 날짜 함수

날짜 함수는 데이터베이스에서 날짜와 시간을 처리하는 데 사용됩니다.

현재 날짜와 시간 가져오기

SELECT CURDATE();     -- 현재 날짜 (YYYY-MM-DD)
SELECT CURRENT_DATE(); -- 현재 날짜 (YYYY-MM-DD)
SELECT CURTIME();     -- 현재 시간 (HH:MM:SS)
SELECT CURRENT_TIME(); -- 현재 시간 (HH:MM:SS)
SELECT NOW();         -- 현재 날짜와 시간 (YYYY-MM-DD HH:MM:SS)
SELECT SYSDATE();     -- 현재 날짜와 시간 (YYYY-MM-DD HH:MM:SS)

날짜 부분 추출하기

SELECT YEAR('2025-03-31');    -- 결과: 2025
SELECT MONTH('2025-03-31');   -- 결과: 3
SELECT DAY('2025-03-31');     -- 결과: 31
SELECT HOUR('15:30:45');      -- 결과: 15
SELECT MINUTE('15:30:45');    -- 결과: 30
SELECT SECOND('15:30:45');    -- 결과: 45
SELECT DAYNAME('2025-03-31'); -- 결과: Monday (요일 이름)
SELECT MONTHNAME('2025-03-31'); -- 결과: March (월 이름)
SELECT DAYOFWEEK('2025-03-31'); -- 결과: 2 (1=일요일, 2=월요일, ...)
SELECT DAYOFYEAR('2025-03-31'); -- 결과: 90 (연중 몇 번째 날)
SELECT WEEKOFYEAR('2025-03-31'); -- 결과: 14 (연중 몇 번째 주)

'BOOK' 카테고리의 다른 글

[Do it SQL] Chapter 07-1  (0) 2025.04.04
[Do it SQL] Chapter 06-5/ 06-6  (0) 2025.04.02
[Do it SQL] Chapter 06-1/ 06-2  (1) 2025.03.29
[Do it SQL] Chapter 05-3  (0) 2025.03.25
[Do it SQL] Chapter 05-1/ 05-2  (2) 2025.03.24