INTERVAL data types – Sử dụng kiểu dữ liệu INTERVAL trong Oracle Database

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

  1. INTERVAL YEAR TO MONTH: Biểu diễn khoảng thời gian tính bằng năm và tháng.
  2. 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_idnamehire_datecontract_duration
1Alice2020-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_datecontract_end_date
2020-01-152022-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_idtask_namestart_timeduration
1Project A2024-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_timeend_time
2024-06-25 10:00:00.0002024-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.

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận