gpt4 book ai didi

sql - 时间戳和日期时间

转载 作者:行者123 更新时间:2023-12-02 18:10:31 24 4
gpt4 key购买 nike

我有一个包含两列的表,第一列是(当前日期)时间戳,另一列是(日期返回)日期时间列。我需要从天数中获取当前日期和日期返回之间的差异。这可能吗?

最佳答案

不,这是不可能的。

与流行的看法(以及名称本身)相反,时间戳实际上与时间无关

免责声明:此答案特定于 Sql Server(根据问题的标签),其他数据库引擎可能有不同的实现。*

相反,它是一个稳定增加的 64 位数字。该数字的值在具有此类时间戳列的单个数据库中的所有表之间共享。换句话说,如果您有两个这样的表,修改一个表中的一行,并修改另一个表中的一行,则第一个表中的时间戳值为 X,第二个表中的时间戳值为 X+1。

as per the documentation of timestamp :

Each database has a counter that is incremented for each insert or update operation that is performed on a table that contains a timestamp column within the database. This counter is the database timestamp. This tracks a relative time within a database, not an actual time that can be associated with a clock.

因此,该值与插入或上次修改行的实际日期和/或时间无关,并且不能以任何方式转换为此类日期/时间。

timestamp 列的唯一目的是拥有唯一的东西,并且保证会增加。由于该值是 64 位,因此您可以访问 18 446 744 073 709 551 616 操作,这些操作在值重置之前需要 timestamp 列。如果你有一个每秒可以处理一百万个这样的操作的数据库,你仍然需要等待大约 584 554 年才能重置该值,所以我认为它满足唯一性要求。

关于sql - 时间戳和日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com