Loading

SQL Server教程:数据类型timestamp和datetime2的区别

一、数据类型timestamp

数据类型:timestamp 的值是二进制数。在插入或更新数据时,自动添加timestamp值,而且还是唯一的值,它不是用来记录 日期/时间字符串的。

表结构:

插入语句:

-- 插入一行
insert into student(id, name, age) values(1001, '刘邦', 45)

-- 查询指定列的值
select id, name, age, db_timestamp from student

二、数据类型datetime2

在数据入库时,我们想给数据入库加上一个时间戳,方便后期根据入库时间戳检索数据是什么时候入库的。

datetime2是SQL Server中一种数据类型,用于存放时间戳(格式: 2022-12-22 12:30:00.000),具体精确到小数点后几位,取决于定义时的数据类型精度

datetime2(n),其中 n 就表示小数点后的位数,取值范围是 0~7

2-1 手动插入时间戳

表结构:

插入语句:

-- 插入一行
insert into student(id, name, age, db_timestamp) values(1002, '项羽', 40, GETDATE())

-- 查询指定列的值
select id, name, age, db_timestamp from student

2-2 自动插入时间戳

对列 db_timestamp 添加约束,约束逻辑:在插入数据时,自动获取时间戳作为 列db_timestamp 的值

-- 修改表列属性
ALTER TABLE student
ADD CONSTRAINT df_current_time 
DEFAULT CURRENT_TIMESTAMP FOR db_timestamp;


插入语句:

-- 插入一行,注意此时未明确指明 列db_timestamp
insert into student(id, name, age) values(1003, '刘邦', 45)

-- 查询指定列的值
select id, name, age, db_timestamp from student

三、参考来源

01_Sql Server-增加字段、修改字段、修改类型、修改默认值 ALTER

02_SQL Server列名显示无效却可以运行问题解决

03_SQL Server Datetime2数据类型

04_SQL Server数据库(时间戳timestamp)类型

posted @ 2022-12-22 15:42  eiSouthBoy  阅读(927)  评论(0)    收藏  举报