[Oracle] 날짜(년,월,일), 시간(시,분,초) 더하고 빼기
이번 포스팅은 그냥 날짜와 시간을 Oracle에서 연산하는 관련된걸 가능한 다 적어보려고 합니다. 우선적으로 오라클은 기본적으로 시간에 +1을 할 경우엔 하루를 더하게 됩니다.관련 실험은 포스팅을 한적이 있습니다. [날짜 마지막 시간 적용에 0.99999 쓰는 이유] 그래서 간단하게 시간을 더하기로 진행하면 일, 시간(시,분,초)에 대한 연산을 진행할 수 있습니다. 더하기 예시 WITH ADDTIME AS ( SELECT TO_DATE('2024-11-28 18:30:10', 'YYYY-MM-DD HH24:MI:SS') TEST_TIME FROM DUAL)SELECT TEST_TIME AS 기준시간 , TEST_TIME +1 A..
2024. 11. 28.
[Oracle] 문자 채우기 (LPAD, RPAD) +응용
오라클에서 특정 문자로 채워야할때 LPAD,RPAD 함수를 사용합니다. 우선 문자 길이를 맞추고나서 부족하면LPAD는 왼쪽에 RPAD는 오른쪽에 특정 문자를 넣어주는 함수입니다. 즉 문자길이를 우선적으로 맞추고 나서 조정에 들어갑니다. 사용법 둘다 같으며LPAD( 값 , 문자길이 , 특정문자) RPAD( 값 , 문자길이 , 특정문자)만약 특정문자가 없을 경우 공백으로 대체됩니다. 특정문자가 들어가는 정도는 (문자길이 - 값의 문자 길이)의 만큼 들어갑니다.예시 LPAD( 'dohi' , 7 , 'D')일경우에 D가 붙는 갯수는 3(=7-4)개로 왼쪽(L)에붙습니다 사용 예제 SELECT LPAD('dohi',6) -- dohi가 길이가 6이 되도록 왼쪽에 2개의 공백추가 , RPAD..
2024. 10. 17.
[Oracle] 시간과 숫자를 원하는 단위까지 절사하는 함수 (TRUNC)
TRUNC함수는 Oracle에서 시간 및 숫자를 절사할때 많이 사용한다.대략 내림함수와 비슷하다.-- 기본 틀 TRUNC(데이터, 설정값)데이터: 잘라낼 시간 및 숫자설정값 : 자르는 조건 1.숫자SELECT 1234.1234 AS MAIN , TRUNC(1234.1234) AS no -- 0과 동일 , TRUNC(1234.1234, 1) AS one -- 소수점1까지남기고 절삭 , TRUNC(1234.1234, 2) AS two -- 소수점2까지 남기고 절삭 , TRUNC(1234.1234, 0) AS zero -- 소수점이하절삭 , TRUNC(1234.1234, -1) ..
2024. 10. 7.
[Oracle/프로그래머스 LV.3] Join/없어진 기록 찾기
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/59042?language=oracle 풀이 Git링크github.com/ 문제설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블구조는 다음과 같으며, ..
2024. 10. 5.
[Oracle/프로그래머스 LV.1] SELECT/흉부외과 또는 일반외과 의사 목록 출력하기
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/132203풀이 Git링크github.com문제설명다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. 풀이where에서..
2024. 10. 5.
[Oracle/SQL] MERGE INTO
MERGE INTO 문UPDATE문, INSERT문, DELETE문 등을 상황에 따라 나눠서 처리하는 문장으로주로 동일한 데이터가 있을경우 UPDATE, 없을경우 INSERT를 하기 위해 사용된다.MERGE INTO 테이블1 -- 테이블,뷰USING 테이블2 -- 테이블,뷰,서브쿼리,dual ON 조건 -- 매칭 조건 ( PK 또는 UNIQUE 제약조건을 사용)WHEN MATCHED THEN --조건 ture (UPDATE,DELETE) , 조건 true일때 아무것도 안하고 싶다면 없어도됨 UPDATE SET 컬럼 = 값 -- WHERE절 사용가능(오라클10g이후 INSERT는 X)WHEN NOT MATCHED THEN --조건 false (INSERT), 조건 fal..
2024. 7. 30.
[Oracle/프로그래머스 LV.1] IS NULL / 경기도에 위치한 식품창고 목록 출력하기
문제링크https://school.programmers.co.kr/learn/courses/30/lessons/131114 GIT [ github.com ] 문제설명다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE테이블입니다. FOOD_WAREHOUSE테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주..
2024. 7. 27.