概述 :
借助示例,您将能够理解 SQL 中从日期查找年份的实现。在这里,我们将看到如何借助 SQL 查询从 MS SQL Server 数据库表中的给定日期中查找或提取年份。出于演示的目的,我们将在名为“ geeks ”的数据库中创建一个demo_orders表。
实施 SQL 查询以从日期查找年份的步骤:
在这里,我们将讨论实现 SQL 查询以从日期查找年份的步骤,如下所示。
步骤 1:创建数据库:
使用以下 SQL 语句创建名为 geeks 的数据库,如下所示。
CREATE DATABASE geeks;
步骤 2:使用数据库:
使用下面的 SQL 语句将数据库上下文切换到 geeks,如下所示。
USE geeks;
第 3 步:创建表:
我们的极客数据库中有以下演示表。
CREATE TABLE demo_orders(
ORDER_ID INT IDENTITY(1,1) PRIMARY KEY,
--IDENTITY(1,1) is same as AUTO_INCREMENT in MySQL.
--Starts from 1 and increases by 1 with each inserted row.
ITEM_NAME VARCHAR(30) NOT NULL,
ORDER_DATE DATE
);
步骤 4:验证表:
您可以使用下面的语句来查询创建的表的描述,如下所示。
EXEC SP_COLUMNS demo_orders;
输出 :
TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME | PRECISION | LENGTH | REMARKS |
---|---|---|---|---|---|---|
demo_orders | ORDER_ID | 4 | int identity | 10 | 4 | NULL |
demo_orders | ITEM_NAME | 12 | varchar | 30 | 30 | NULL |
demo_orders | ORDER_DATE | -9 | date | 10 | 20 | NULL |
步骤 5:向表中添加数据:
使用以下语句将数据添加到 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');
步骤 6:验证插入的数据:
要验证表的内容,请使用以下语句。
SELECT * FROM demo_orders;
输出 :
ORDER_ID | ITEM_NAME | ORDER_DATE |
---|---|---|
1 | Maserati | 2007-10-03T00:00:00.000Z |
2 | BMW | 2010-07-23T00:00:00.000Z |
3 | Mercedes Benz | 2012-11-12T00:00:00.000Z |
4 | Ferrari | 2016-05-09T00:00:00.000Z |
5 | Lamborghini | 2020-10-20T00:00:00.000Z |
第 7 步:实施查询以从日期查找年份:
现在让我们借助 YEAR()函数找到 ITEM_NAME 为“玛莎拉蒂”的订单年份。以下是从给定日期检索年份的语法。
句法 –
SELECT YEAR();
--or within a table--
SELECT YEAR() FROM ;
例子 –
SELECT YEAR(ORDER_DATE) AS YEAR_OF_ORDER
FROM demo_orders
WHERE ITEM_NAME='Maserati';
输出 :
YEAR_OF_ORDER |
---|
2007 |
第 8 步:执行查询以从 Date 查找日、月和年:
同样,我们可以使用 DAY() 和 MONTH() 函数找到给定日期的相应日期和月份。
例子 –
SELECT day(order_date)[day], --here [day] is the identifier name for the column in the output.
month(order_date)[month],
year(order_date)[year]
FROM demo_orders
WHERE ITEM_NAME='Lamborghini';
输出 :
day | month | year |
---|---|---|
20 | 10 | 2020 |