我有一个包含两列的表第一列是(currentdate)时间戳,另一列是(dateReturn)datetime列.需要从天数获取currentdate和dateReturn之间的差异.这可能吗?
不,这是不可能的.
与流行的看法(以及名称本身)相反,timestamp专栏实际上与时间无关.
免责声明:这个答案特定于Sql Server(根据问题的标签),其他数据库引擎可能在这里有不同的实现.*
相反,它是一个稳定增加的64位数字.在具有此类时间戳列的单个数据库中的所有表之间共享该数字的值.换句话说,如果你有两个这样的表,修改一行中的一行,修改另一行中的一行,第一个表中的时间戳值将是X,而第二个表中的值将是X + 1.
每个数据库都有一个计数器,该计数器针对在包含数据库中的时间戳列的表上执行的每个插入或更新操作递增.此计数器是数据库时间戳.这会跟踪数据库中的相对时间,而不是可以与时钟关联的实际时间.
因此,该值与插入或最后修改行的实际日期和/或时间无关,并且不能以任何方式转换为这样的日期/时间.
timestamp专栏的唯一目的是拥有独特的东西,保证增加.由于该值为64位,因此您可以在值重置之前访问18 446 744 073 709 551 616需要timestamp列的操作.如果你有一个可以每秒处理一百万个这样的操作的数据库,你仍然需要在值重置之前等待大约584 554年,所以我认为它符合唯一性要求.
| 归档时间: |
|
| 查看次数: |
5580 次 |
| 最近记录: |