📌  相关文章
📜  计算两个特定日期之间的总天数的 SQL 查询

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

计算两个特定日期之间的总天数的 SQL 查询

在这里我们将看到,如何使用 DATEDIFF()函数在 SQL 查询的帮助下计算两个给定日期之间的天数。

出于演示的目的,我们将在名为“ geeks ”的数据库中创建一个demo_orders表。

创建数据库:

使用以下 SQL 语句创建名为 geeks 的数据库:

CREATE DATABASE geeks;

使用数据库:

使用以下 SQL 语句将数据库上下文切换到 geeks:

USE geeks;

定义:

我们已经在我们的数据库爱好者以下demo_table。



CREATE TABLE demo_orders(
ORDER_ID INT IDENTITY(1,1) PRIMARY KEY, 
ITEM_NAME VARCHAR(30) NOT NULL,
ORDER_DATE DATE
);

您可以使用以下语句查询已创建表的描述:

EXEC SP_COLUMNS demo_orders;

向表中添加数据:

使用以下语句向demo_orders表添加数据:

INSERT INTO demo_orders --no need to mention columns explicitly as we are inserting into
                        --all columns and ID gets
                          --automatically incremented.
VALUES
('Maserati', '2007-10-03'),
('BMW', '2010-07-23'),
('Mercedes Benz', '2012-11-12'),
('Ferrari', '2016-05-09'),
('Lamborghini', '2020-10-20');

要验证表的内容,请使用以下语句:

SELECT * FROM demo_orders;

现在让我们使用 DATEDIFF()函数找出表格中“玛莎拉蒂”和“法拉利”顺序的日期之间的月数。

以下是 DATEDIFF()函数查找编号的语法。两个给定日期之间的天数。

Syntax: DATEDIFF(day or dy or y, , );

例子:

DECLARE 
@start VARCHAR(10) = (
  SELECT order_date FROM demo_orders
  WHERE item_name = 'Maserati'),
@end VARCHAR(10) = (
  SELECT order_date FROM demo_orders
  WHERE item_name = 'Ferrari')
  

--@start variable holds the start date(i.e date of Maserati being purchased).

--@end variable holds the end date (i.e date of Ferrari being purchased).

SELECT DATEDIFF(day, @start, @end) AS number_of_days;

输出: