📜  如何从 Oracle 数据库中检索基于日期的记录?

📅  最后修改于: 2022-05-13 01:55:29.024000             🧑  作者: Mango

如何从 Oracle 数据库中检索基于日期的记录?

DATE 是一种 SQL 定义的数据类型,用于在列中存储日期,不同的数据库管理系统以不同的格式存储日期。 MySQL 使用 3 个字节来存储日期。它以类似“YYYY-MM-DD”的格式存储 DATE。 DATE 值的范围从 1000-01-01 到 9999-12-31。 Oracle 数据库管理系统以类似“MM-DD-YYYY”的格式存储 DATE。

这里'MM'是月份,'DD'是天,'YYYY'是年份。 Microsoft SQL Server 以与 MySQL 存储日期相同的格式存储日期。

第一步:创建数据库

询问:

CREATE DATABASE geeksforgeeks;

第 2 步:让我们创建一个名为 employees 的表。

询问:

CREATE TABLE employee
(emp_id INT, emp_fname VARCHAR(45), 
emp_lname VARCHAR(45),join_date DATE, 
PRIMARY KEY(emp_id));

第 3 步:现在我们将在员工表中插入值。

询问:

INSERT INTO employee VALUES 
(100181, 'Utkarsh', 'Tyagi', '1996-01-31'),
 (100182, 'Abhishek', 'Singh', '1996-03-21'), 
(100183, 'Jake', 'Johnson', '1997-06-14'), 
(100184, 'Abhimanyu', 'Rana', '1997-11-06'), 
(100185, 'Akansha', 'Sharma', '1998-11-23'), 
(100186, 'Priya', 'Yadav', '1999-10-10'),
(100187, 'Naina', 'Singhal', '2000-06-13');

第 4 步:现在让我们看看表格的内容。

询问:

SELECT * FROM employee;

输出:

第 5 步:我们只想打印 join_date 为 '2000-06-13' 的记录。

  • 使用 '='运算符根据 DATE 检索记录

询问:

SELECT * FROM employee WHERE join_date = '2000-06-13';

输出:

我们只有一名员工的 join_date 为“2000-06-13”。

  • 使用LIKE 关键字根据 DATE 检索记录

我们将使用与上面示例中使用的相同的员工表。现在我们的任务是检索那些 join_date 为 1996 年的记录,而不考虑日期和月份。

询问:

SELECT * FROM employee WHERE join_date LIKE '1996-%';

所以我们有两条记录,其 join_date 是 1996 年。

  • 使用BETWEEN关键字根据 DATE 检索记录

我们想要检索那些 join_date 在 1996 年和 1997 年之间的记录。

询问:

SELECT * FROM employee WHERE join_date BETWEEN '1996-01-01' AND '1997-12-31';

因此,在这段时间间隔内,有四名员工加入了公司。