如何在 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';
输出: