Oracle转SQL Sever 之 时间戳
- 时间戳类型
长期使用oracle人士,使用sql server 诸多不适应。一个时间戳 数据类型的字段就难到了,查找了很多时间戳日期转换的方法,都不行。
后面查到资料,SQL Server 的 timestam数据类型与时间和日期无关。
篇幅过长,一时有点难以理解,决定建个测试表,操作看下,实践出真知!
新建一个测试表
create table Table_1( no int , modifytime timestamp, name varchar(50) )
往表里插入一条数据,modifytime 字段自动赋值了。
insert into Table_1(no,name) values(1,'我是01');
更新name字段,可以看到modifytime 也更新了
update Table_1 set name = '我是001' where name ='我是01'
再试下把name字段更新为本身,在影响行数为0的情况下,时间戳字段还是会自动更新
update Table_1 set name = '我是001' where name ='我是001'
试图更新时间戳这个字段,事实证明,不能更新。
update Table_1 set modifytime = '0x000000000519A48E' where name ='我是001'
到此,再结合开头的资料,明白了时间戳这个数据类型的规则。原本是想把时间戳这个字段转换为日期格式来判断数据是否被更新, 现在看来要放弃这个方式了。