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


浙公网安备 33010602011771号