Kiểu dữ liệu INTERVAL trong Oracle được sử dụng để biểu diễn khoảng thời gian. Kiểu dữ liệu này rất hữu ích khi bạn cần lưu trữ và xử lý các khoảng thời gian như “2 ngày” hoặc “3 tháng”. Oracle cung cấp hai loại INTERVAL: INTERVAL data types – Sử dụng kiểu dữ liệu INTERVAL trong Oracle Database
- INTERVAL YEAR TO MONTH: Biểu diễn khoảng thời gian tính bằng năm và tháng.
- INTERVAL DAY TO SECOND: Biểu diễn khoảng thời gian tính bằng ngày, giờ, phút, giây.
Dưới đây là cách sử dụng các kiểu dữ liệu INTERVAL trong Oracle:
1. INTERVAL YEAR TO MONTH
Kiểu dữ liệu INTERVAL YEAR TO MONTH biểu diễn khoảng thời gian theo năm và tháng. Bạn có thể sử dụng nó để thêm hoặc trừ khoảng thời gian từ một giá trị DATE hoặc TIMESTAMP.
-- Tạo bảng có cột INTERVAL YEAR TO MONTH CREATE TABLE employees ( employee_id NUMBER, name VARCHAR2(50), hire_date DATE, contract_duration INTERVAL YEAR TO MONTH ); -- Chèn dữ liệu vào bảng INSERT INTO employees (employee_id, name, hire_date, contract_duration) VALUES (1, 'Alice', DATE '2020-01-15', INTERVAL '2-6' YEAR TO MONTH); -- Truy vấn dữ liệu SELECT employee_id, name, hire_date, contract_duration FROM employees;
Kết quả sẽ là:
employee_id | name | hire_date | contract_duration |
---|---|---|---|
1 | Alice | 2020-01-15 | +02-06 |
Sử dụng INTERVAL YEAR TO MONTH:
-- Thêm khoảng thời gian vào ngày thuê SELECT hire_date, hire_date + contract_duration AS contract_end_date FROM employees WHERE employee_id = 1;
Kết quả sẽ là:
hire_date | contract_end_date |
---|---|
2020-01-15 | 2022-07-15 |
2. INTERVAL DAY TO SECOND
Kiểu dữ liệu INTERVAL DAY TO SECOND biểu diễn khoảng thời gian theo ngày, giờ, phút và giây. Điều này rất hữu ích khi bạn cần tính toán khoảng thời gian chi tiết hơn.
-- Tạo bảng có cột INTERVAL DAY TO SECOND CREATE TABLE tasks ( task_id NUMBER, task_name VARCHAR2(50), start_time TIMESTAMP, duration INTERVAL DAY TO SECOND ); -- Chèn dữ liệu vào bảng INSERT INTO tasks (task_id, task_name, start_time, duration) VALUES (1, 'Project A', TIMESTAMP '2024-06-25 10:00:00', INTERVAL '5 04:30:00' DAY TO SECOND); -- Truy vấn dữ liệu SELECT task_id, task_name, start_time, duration FROM tasks;
Kết quả sẽ là:
task_id | task_name | start_time | duration |
---|---|---|---|
1 | Project A | 2024-06-25 10:00:00.000 | +05 04:30:00.000 |
Sử dụng INTERVAL DAY TO SECOND:
-- Thêm khoảng thời gian vào thời gian bắt đầu SELECT start_time, start_time + duration AS end_time FROM tasks WHERE task_id = 1;
Kết quả sẽ là:
start_time | end_time |
---|---|
2024-06-25 10:00:00.000 | 2024-06-30 14:30:00.000 |
- Bạn có thể thêm hoặc trừ các khoảng thời gian này từ các giá trị DATE hoặc TIMESTAMP.
- Điều này cho phép bạn tính toán các ngày kết thúc hợp đồng, thời gian hoàn thành nhiệm vụ, và các phép tính liên quan đến khoảng thời gian khác.
Việc sử dụng kiểu dữ liệu INTERVAL giúp bạn quản lý và thao tác các khoảng thời gian một cách hiệu quả và chính xác trong các ứng dụng cơ sở dữ liệu Oracle.