📜  如何编写特定日期范围和日期时间的 SQL 查询?

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

如何编写特定日期范围和日期时间的 SQL 查询?

在 SQL 中,有些问题需要我们根据日期和时间来检索行。对于这种情况,我们使用 SQL 中存在的 DATETIME2 数据类型。对于本文,我们将使用 Microsoft SQL Server 作为我们的数据库。

注意– 在这里,我们将使用 WHERE 和 BETWEEN 子句与查询一起将我们的行限制在给定时间。 MS SQL Server 中保存日期和时间的模式是 yyyy:mm:dd hh:mm:ss。时间以 24 小时格式表示。日期和时间使用数据类型 DATETIME2 共同存储在列中。

句法:

SELECT * FROM TABLE_NAME WHERE DATE_TIME_COLUMN
BETWEEN 'STARTING_DATE_TIME' AND 'ENDING_DATE_TIME';

第 1 步:创建数据库。为此,请使用以下命令创建一个名为 GeeksForGeeks 的数据库。

询问:

CREATE DATABASE GeeksForGeeks

输出:

第 2 步:使用 GeeksForGeeks 数据库。为此,请使用以下命令。

询问:

USE GeeksForGeeks

输出:

第 3 步:在 GeeksForGeeks 数据库中创建一个 PERSONAL 表。该表有 3 列,即 BABY_NAME、WARD_NUMBER 和 BIRTH_DATE_TIME,其中包含各种婴儿的姓名、病房号以及出生日期和时间。

询问:

CREATE TABLE PERSONAL(
BABY_NAME VARCHAR(10),
WARD_NUMBER INT,
BIRTH_DATE_TIME DATETIME2);

输出:

第 4 步:描述表 PERSONAL 的结构。

询问:

EXEC SP_COLUMNS PERSONAL;

输出:

第 5 步:在 MARKS 表中插入 5 行。

询问:

INSERT INTO PERSONAL VALUES('TARA',3,'2001-01-10 10:40:50');
INSERT INTO PERSONAL VALUES('ANGEL',4,'2001-03-27 11:00:37');
INSERT INTO PERSONAL VALUES('AYUSH',1,'2002-09-18 13:45:21');
INSERT INTO PERSONAL VALUES('VEER',10,'2005-02-28 21:26:54');
INSERT INTO PERSONAL VALUES('ISHAN',2,'2008-12-25 00:01:00');

输出:

第 6 步:显示 MARKS 表的所有行,包括 0(零)值。

询问:

SELECT * FROM PERSONAL;

输出:

第 7 步:检索 2000 年 1 月 1 日上午 12:00 到 2002 年 9 月 18 日下午 12:00 之间出生的婴儿的详细信息。

询问:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME BETWEEN
'2000-01-01 00:00:00' AND '2002-09-18 12:00:00';

输出:

第 8 步:检索 2001 年 5 月 1 日上午 11:00 到 2005 年 5 月 1 日晚上 10:00 之间出生的婴儿的详细信息。

询问:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME BETWEEN
 '2001-03-01 11:00:00' AND '2005-03-01 22:00:00';

输出:

第 9 步:检索 2005 年圣诞节或之后出生的婴儿的详细信息。

询问:

SELECT * FROM PERSONAL WHERE BIRTH_DATE_TIME > 
'2005-12-25 00:00:00';

输出: