这一次真是吃了大亏,MySQL中插时间时一直使用timestamp,免除了在代码里面插数据,于是想当然地以为sql server也是一样的,数据出来后就傻眼了,这都什么呀。Google后才知道
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。
而在MySQL中,
以后切记勿犯此类错误!
SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。这样做足以帮助恢复过程确定页修改的相对次序,但是 timestamp 值与时间没有任何关系。
而在MySQL中,
TIMESTAMP列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。以后切记勿犯此类错误!
本文探讨了SQLServer与MySQL中时间戳数据类型的差异。SQLServer中的timestamp并不表示时间,而是用于记录数据修改顺序的二进制数字;而MySQL中的TIMESTAMP则自动记录操作的时间。了解这些差异对于跨数据库迁移非常重要。

被折叠的 条评论
为什么被折叠?



