当前位置: 首页 > news >正文

【你也能从零基础学会网站开发】浅谈一下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

用这种方式来提醒我们,字段的记录已被修改!

至于更多的操作~我们还是要把后面的知识点学习了之后,在实际的相中进行演示和操作!

好了今天我们就先说到这里!~

"👍点赞" "✍️评论" "收藏❤️"

大家的支持就是我坚持下去的动力!

如果以上内容有任何错误或者不准确的地方,🤗🤗🤗欢迎在下面 👇👇👇 留个言指出、或者你有更好的想法,
欢迎一起交流学习❤️❤️💛💛💚💚

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


http://www.mrgr.cn/news/54597.html

相关文章:

  • JSP + Servlet:构建动态Web应用的经典组合
  • ruoyi域名跳转缓存冲突问题(解决办法修改:session名修改session的JSESSIONID名称)
  • android 与网页交互通过网页修改宿主布局和异常处理——未来之窗行业应用跨平台架构
  • Python数据处理工具笔记 - matplotlib, Numpy, Pandas
  • 反弹Shell
  • Java后端面试题:MySQL篇
  • Java 数组新手教程一口气讲完!(≧∀≦)ゞ
  • c++ 桶排序(看这一篇就够了)
  • 域渗透之内网渗透 frp内网穿透 环境部署 软件下载地址 实现内网服务访问 端口映射 一步步实现效果 以及Ngrok示例场景讲解
  • 嵌入式开发介绍以及项目示例
  • 相对强弱指标(RSI, Relative Strength Index)
  • IT运维的365天--017 如何在两台Linux服务器之间快速传输文件夹(同时设置免密)
  • 少儿Scratch图形化编程案例100课——005公鸡捉虫
  • 【人工智能-初级】第10章 用Python从零构建简单的神经网络
  • 能够免费剪辑音频的工具有哪些?试试这4款!
  • JS闭包的特性和应用场景
  • Kubernetes GPU 调度和 Device Plugin、CDI、NFD、GPU Operator 概述
  • FastDFS单节点部署
  • 《欢乐饭米粒儿》第九季热播中,今晚精彩继续!
  • PUBG报错:吃鸡请重新安装软件MSVCP140.dll的必备修复方法
  • C#中实现事务
  • 2024130读书笔记|《不确定的我》——我们奔走、挣扎抗拒着,又热切地期盼着
  • 车载软件架构---汽车电子软件 A-B分区
  • 提示词高级阶段学习day1
  • LLAMA2入门(二)-----Transformer基础知识
  • 基于SSM果蔬经营系统的设计