【问题标题】:Convert timestamp (database) to DateTime (C#) [closed]将时间戳(数据库)转换为 DateTime(C#)[关闭]
【发布时间】:2012-04-04 22:02:15
【问题描述】:

在我的 SQL Server 表中,我有一列数据类型为 timestamp,我想在 C# 中转换为 DateTime

【问题讨论】:

    标签: c# ado.net timestamp


    【解决方案1】:

    这是不可能的。

    "时间戳数据类型只是一个递增的数字,不 保留日期或时间。”

    http://msdn.microsoft.com/en-us/library/ms182776%28v=SQL.90%29.aspx

    【讨论】:

    • 取决于 DBRMS。在 Sybase 12 中,您不会找到 DateTime 作为类型,它总是会显示一个名为 timestamp 的类型,它实际上是 DateTime 的另一种格式。
    • @Offler:我假设 SQL Server 的 OP 是指 SQL Server,而不是任何其他 DBRMS。 ;)
    【解决方案2】:

    你不能。 timestamp 数据类型是rowversion 的别名;它是一个二进制递增值,它不是由日期和时间组成,也不是基于日期和时间。

    【讨论】:

    • 如果我是正确的,实际上rowversion是时间戳的别名。
    【解决方案3】:

    时间戳类型不是日期或时间的表示,而只是一个生成的数字,它保证在数据库中是唯一的。因此,它不能直接转换。

    执行粗略转换的唯一方法是定期将当前时间与时间戳一起存储在新表中,然后选择最接近您要转换的时间戳的时间。

    或者,您可能希望在日期时间类型的表中添加一个新列,并在行更改时更新此列。

    【讨论】:

      【解决方案4】:

      Transact-SQL 时间戳数据类型是没有时间相关值的二进制数据类型.....,时间戳既不是日期也不是时间。所以,你不能这样做.....见波尔:

      时间戳:

      timestamp 是一种数据类型,它公开自动生成的二进制数,保证在数据库中是唯一的。时间戳通常用作对表行进行版本标记的机制。存储大小为 8 个字节。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-04
        • 2019-12-24
        • 2011-12-18
        • 2014-08-30
        • 2020-09-11
        • 2022-01-24
        • 2012-11-09
        相关资源
        最近更新 更多