【你也能从零基础学会网站开发】浅谈一下SQL Server 2000中的日期和时间数据类型
🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

日期数据类型
在SQL Server中,日期数据类型也是我们在开发中比较常用的数据类型,它主要用于存储日期和时间的信息!
DATETIME类型
DATETIME就是用来存储日期和时间,这种类型会占用8个字节!
但是日期和时间也是有范围取值的, 它有效范围为1753年1月1日 ~~ 9999年12月31日, 这个范围取值完全可以满足大部分的需求了
我们打开企业管理器,新建一个字段尝试设置为DATETIME类型试试看
如图

这里我们就在orders订单表中存储了一个时间格式的字段!!
基本上它的应用场景就是要同时存储日期和时间,比如说记录某个事物的发生时间!
我们可以来尝试一下插入一个时间试试看, 注意插入的格式为: YYYY-MM-DD HH:MM:SS
也就是年-月-日 时:分:秒

当然如果你插入的时间大于或者小于规定的取值范围,那么自然会报错!
如图

SMALLDATETIME类型
这种·SMALLDATETIME类型也是日期时间类型,它和 DATETIME类型一样,但是精度较低,
它的取值范围是1900年1月1日 ~~~ 2079年6月6日, 占用4个字节的空间
如图

一般这种适用于对日期和时间要求不高的场景, 平常也能满足大多数需求
所以我们在实际开发中就可以灵活选择使用哪种类型比较合适!
以上两种日期数据类型是我们开发中比较常用的基础日期存储格式!
TIMESTAMP 类型
在SQL Server 2000中,有一种比较特殊的日期时间类型TIMESTAMP类型
它用于记录数据行最后一次的更新或插入的时间戳, 光这样说肯定大家还是不明白,那么我们下面就来详细的说明一下!
TIMESTAMP 的核心作用
TIMESTAMP类型是占用8个字节的存储空间的数据类型!!
但其实最关键的是TIMESTAMP类型不是直接存储日期或时间信息,而是存储一个二进制数值,
而这个数值在每次对表中的记录进行插入或更新操作的时候,都会自动更新, 也就是说当表中的行被插入或更新时,TIMESTAMP类型的字段的值会自动更新为一个新的二进制数值!
那么由于TIMESTAMP字段的值在每次有操作都会改变,所以它可以用作数据行的版本戳,这样来跟踪数据的变化并检测数据冲突性!
从数据表字段的限制设计上说, 每个表中只能有一个TIMESTAMP数据类型的字段,这个字段通常用于跟踪数据的变化
所以我们不能在一个表中, 定义多个TIMESTAMP类型的字段, 否则会报错!
如图


举个栗子
比如说我们现在有一个名为Employees的表存储员工的信息,
我们可以在这个表中添加一个TIMESTAMP类型的字段,用来跟踪和判断员工信息是否被操作或者更改!
CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY IDENTITY, EmployeeName NVARCHAR(50), Department NVARCHAR(50), LastUpdated TIMESTAMP
);
如图

其中LastUpdated字段就是一个TIMESTAMP类型,来记录员工信息的最后一次更新的时间戳
那么现在,我们来给Employees表中插入一些新记录, 不懂SQL操作的朋友也不要担心,这里看我操作即可
后面会讲到!~
INSERT INTO Employees (EmployeeName, Department) VALUES ('张三', '销售部');
INSERT INTO Employees (EmployeeName, Department) VALUES ('李四', '市场部');
如图

那么这个时候, 插入后LastUpdated字段会自动更新为一个新的二进制数值,表示这个记录已被插入!
我们可以简单查询一下
如图

在LastUpdated字段中,你会看到一堆你看不懂的东西! 不过你可以先记住里面的内容是什么!
那么这个到底在什么场景下,起作用呢?
比如: 我们随后要更新某条记录,例如修改 李四这个员工的部门, 我们来看看是什么效果!
这里我执行一个简单的修改SQL语句
UPDATE Employees SET Department = '技术部' WHERE EmployeeID = 2;
我们来做一个前后对比!~
如图


很明显对应第二条记录的LastUpdated字段值有变化, 从之前的0x000000000000026A 变化成了0x000000000000026B
用这种方式来提醒我们,字段的记录已被修改!
至于更多的操作~我们还是要把后面的知识点学习了之后,在实际的相中进行演示和操作!
好了今天我们就先说到这里!~


"👍点赞" "✍️评论" "收藏❤️"
欢迎一起交流学习❤️❤️💛💛💚💚

好玩 好用 好看的干货教程可以 点击下方关注❤️ 微信公众号❤️ 说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇

