[ DB / Oracle ] 데이터 조회(SELECT)에 조건(WHERE) 추가(2)

2024. 1. 16. 19:54· LANGUAGE/└ Database

환경 : DBeaver

 

[날짜 조건]

 

 (참고) 이 글에서 사용한 테이블 정보 입니다.

CREATE TABLE vehicle (
  vehicle_id NUMBER PRIMARY KEY,	--차량 고유 숫자
  model_name VARCHAR2(30) NOT NULL,	--차량 모델
  vehicle_type VARCHAR2(15) CHECK(vehicle_type IN ('Sedan', 'SUV', 'Truck', 'Motorcycle')),
  price NUMBER,	--차량 종류
  manufacture_date DATE,	--차량 제조일자
  registration_expire_date DATE	--차량 등록 만료일
);

INSERT INTO vehicle VALUES(1, 'Toyota Camry', 'Sedan', 25000, '2021-01-15', '2023-01-17');
INSERT INTO vehicle VALUES(2, 'Honda CR-V', 'SUV', 30000, '2020-12-10', '2023-12-10');
INSERT INTO vehicle VALUES(3, 'Ford F-150', 'Truck', 40000, '2020-11-05', '2020-12-05');
INSERT INTO vehicle VALUES(4, 'Harley-Davidson Sportster', 'Motorcycle', 12000, '2022-02-20', '2023-02-20');
INSERT INTO vehicle VALUES(5, 'Tesla Model Y', 'SUV', 50000, '2021-03-30', '2024-03-30');
INSERT INTO vehicle VALUES(6, 'Chevrolet Silverado', 'Truck', 35000, '2020-08-15', '2023-08-15');
INSERT INTO vehicle VALUES(7, 'Yamaha MT-07', 'Motorcycle', 8000, '2021-05-01', '2023-02-01');
INSERT INTO vehicle VALUES(8, 'Nissan Altima', 'Sedan', 23000, '2020-07-10', '2023-07-15');
INSERT INTO vehicle VALUES(9, 'Ducati Panigale V4', 'Motorcycle', 25000, '2022-04-05', '2024-04-05');
INSERT INTO vehicle VALUES(10, 'Jeep Wrangler', 'SUV', 35000, '2020-10-01', '2023-11-31');

SELECT * FROM vehicle;

출처 : https://docs.oracle.com/database/121/SQLRF/functions067.htm#SQLRF00639

 

 날짜 데이터에서 원하는 부분만 출력하고 싶으면 EXTRACT() 함수를 사용하면 됩니다.

EXTRACT( { YEAR
         | MONTH
         | DAY
         | HOUR
         | MINUTE
         | SECOND
         | TIMEZONE_HOUR
         | TIMEZONE_MINUTE
         | TIMEZONE_REGION
         | TIMEZONE_ABBR
         }
         FROM { expr }
       )

사용 예제를 살펴 보겠습니다.

 

[ 2020년에 제조된 차량 출력 ]

SELECT * FROM vehicle WHERE EXTRACT(YEAR FROM manufacture_date) = 2020; 
SELECT * FROM vehicle WHERE to_char(manufacture_date, 'YYYY') = '2020';

 

  (+) 연도를 출력할 것이기 때문에 YEAR, 그리고 어디를 기준으로 할건지 해당 컬럼명 출력

  (+) 문자열로 변경하여 연도 형태로 출력할 수도 있다. 

 

SELECT * FROM vehicle WHERE 
	manufacture_date >= TO_DATE('2020-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
	AND
	manufacture_date <= TO_DATE('2020-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS'); 
    
SELECT * FROM vehicle WHERE 
	manufacture_date BETWEEN 
	TO_DATE('2020-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
	AND
	TO_DATE('2020-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS');

 

   (+) TO_DATE()를 활용하여 출력하는 방법이다. 

 

 

 

 

 

 

 

 

 

 

 

개인 공부 기록용 입니다:)

 

728x90