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