📌  相关文章
📜  如何在 SQL Server 中选择两个日期和时间之间的数据?

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

如何在 SQL Server 中选择两个日期和时间之间的数据?

在 SQL 中,一些事务需要根据它们的完成时间和日期来提取。在这里,DATETIME2 数据类型在 SQL 中执行这样的操作。对于本文,我们将使用 Microsoft SQL Server 作为我们的数据库。

注意:在这里,我们将使用查询中给出的两个日期和时间,并使用BETWEEN关键字将它们分开。这前面是WHERE关键字,用于满足 BETWEEN 子句生成的条件。如上所述,我们表格中日期和时间的格式应为yyyy:mm: dd hh:mm: ss ,这是DATETIME2所隐含的。时间采用24 小时格式。

句法:

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 数据库中创建一个表 ATM。该表有 3 列,即 HOLDER_NAME、WITHDRAWAL_AMOUNT 和 TRANSACTION_TIME,分别包含帐户持有人的姓名、他/她提取的金额以及交易的日期和时间。

询问:

CREATE TABLE ATM(
HOLDER_NAME VARCHAR(10),
WITHDRAWAL_AMOUNT INT,
TRANSACTION_TIME DATETIME2);

输出:

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

询问:

EXEC SP_COLUMNS ATM;

输出:

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

询问:

INSERT INTO ATM VALUES('BOB',300,'2001-01-10 10:40:50');
INSERT INTO ATM VALUES('MARY',400,'2001-03-27 11:00:37');
INSERT INTO ATM VALUES('VANCE',100,'2002-09-18 13:45:21');
INSERT INTO ATM VALUES('OSCAR',1000,'2005-02-28 21:26:54');
INSERT INTO ATM VALUES('PETER',200,'2008-12-25 00:01:00');

输出:

步骤 6:显示 ATM 表的所有行。

询问:

SELECT * FROM ATM;

输出:

第 7 步:检索在 2001 年 2 月 1 日上午 10:00 到 2007 年 5 月 1 日晚上 10:00 之间完成的交易的详细信息。

询问:

SELECT * FROM ATM WHERE 
TRANSACTION_TIME BETWEEN
'2001-02-01 10:00:00' AND
 '2007-03-01 22:00:00';

输出:

第 8 步:检索 2005 年 2 月 28 日晚上 9:00 到 2008 年 12 月 25 日凌晨 12:00 之间完成的交易的详细信息。

询问:

SELECT * FROM ATM WHERE TRANSACTION_TIME
BETWEEN '2005-02-28 21:00:00' 
AND '2008-12-25 00:00:00';

注意– 第 5 个元组没有显示,因为它的事务时间是00:01:00 ,而我们的查询将时间限制为00:00:00。

输出:

第 9 步:检索在 2001 年 1 月 10 日上午 10:30 到 2001 年 3 月 27 日下午 12:00 之间完成的交易的详细信息。

询问:

SELECT * FROM ATM WHERE TRANSACTION_TIME
BETWEEN '2001-01-10 10:30:00' 
AND '2001-03-27 12:00:00';

输出: