SQL Server SMALLDATETIME 数据类型介绍

SQL Server 是一种关系型数据库管理系统,支持多种不同的数据类型,其中包括 SMALLDATETIME 数据类型。SMALLDATETIME 是一种日期时间数据类型,用于存储日期和时间的组合。

语法

SMALLDATETIME 数据类型使用以下语法:

SMALLDATETIME

SMALLDATETIME 数据类型占用 4 个字节的存储空间,可以表示从 1900 年 1 月 1 日至 2079 年 6 月 6 日之间的日期和时间。它的精度是分钟级别的,精确到分钟的第 1 秒或第 2 秒。

使用场景

SMALLDATETIME 数据类型通常用于需要存储日期和时间信息的业务应用程序中。它非常适合用于存储较早的日期和时间信息,因为它不支持更早的日期。

SMALLDATETIME 数据类型可以在数据表中作为列使用。在创建表时,可以指定 SMALLDATETIME 列的名称和数据类型。可以使用 INSERT 语句向 SMALLDATETIME 列中插入日期和时间值。

示例

以下是两个使用 SMALLDATETIME 数据类型的示例:

示例 1

创建一个名为 Orders 的表,其中包含 OrderDate 列和 ShipDate 列,它们都是 SMALLDATETIME 数据类型。

CREATE TABLE Orders (
   OrderID INT PRIMARY KEY,
   OrderDate SMALLDATETIME,
   ShipDate SMALLDATETIME
);

插入一些数据:

INSERT INTO Orders (OrderID, OrderDate, ShipDate)
VALUES (1, '2022-03-10 13:30:00', '2022-03-12 10:00:00'),
       (2, '2022-03-11 14:00:00', '2022-03-13 12:00:00'),
       (3, '2022-03-12 15:00:00', '2022-03-14 11:30:00');

查询 Orders 表:

SELECT * FROM Orders;

输出结果:

OrderID OrderDate ShipDate
1 2022-03-10 13:30:00 2022-03-12 10:00:00
2 2022-03-11 14:00:00 2022-03-13 12:00:00
3 2022-03-12 15:00:00 2022-03-14 11:30:00

示例 2

假设有一个销售记录表,其中包含销售日期和销售金额两个字段。我们可以使用 SMALLDATETIME 数据类型来存储销售日期。

CREATE TABLE Sales (
  SaleID INT PRIMARY KEY,
  SaleDate SMALLDATETIME,
  Amount MONEY
);

现在我们向 Sales 表中插入一些销售记录。

INSERT INTO Sales VALUES
  (1, '2022-01-01 10:00', 100.00),
  (2, '2022-01-02 15:30', 50.00),
  (3, '2022-01-03 14:00', 200.00);

我们可以使用以下查询语句查找 2022 年 1 月 2 日的销售记录。

SELECT * FROM Sales
WHERE SaleDate = '2022-01-02';

结果如下:

SaleID SaleDate Amount
2 2022-01-02 15:30 50.00

示例 3

假设有一个会议室预订表,其中包含预订开始时间和结束时间两个字段。我们可以使用 SMALLDATETIME 数据类型来存储预订时间。

CREATE TABLE MeetingRoomBookings (
  BookingID INT PRIMARY KEY,
  RoomNumber INT,
  StartTime SMALLDATETIME,
  EndTime SMALLDATETIME
);

现在我们向 MeetingRoomBookings 表中插入一些预订记录。

INSERT INTO MeetingRoomBookings VALUES
  (1, 101, '2022-02-15 09:00', '2022-02-15 10:00'),
  (2, 102, '2022-02-15 10:00', '2022-02-15 12:00'),
  (3, 103, '2022-02-16 14:00', '2022-02-16 16:00');

我们可以使用以下查询语句查找 2022 年 2 月 15 日 10 点到 12 点之间的预订记录。

SELECT * FROM MeetingRoomBookings
WHERE StartTime >= '2022-02-15 10:00'
AND EndTime <= '2022-02-15 12:00';

结果如下:

BookingID RoomNumber StartTime EndTime
2 102 2022-02-15 10:00 2022-02-15 12:00

结论

SMALLDATETIME 数据类型适合于存储日期和时间,并且对精度要求不是很高的情况。它只能存储到分钟级别,因此在需要存储秒级别或更高精度的情况下,应该使用 DATETIMEDATETIME2 数据类型。