gpt4 book ai didi

c# - T-Sql 中的时间戳在 C# 中意味着什么?

转载 作者:可可西里 更新时间:2023-11-01 03:13:06 27 4
gpt4 key购买 nike

我正在尝试开发一个模型对象来保存 Sql Server 行,并且我完全理解如何执行此操作,除了 T-Sql/SqlServer 时间戳。该表定义为:

CREATE TABLE activity (
activity_id int
, ip_address varchar(39)
, user_id varchar(255)
, message_text
, dt timestamp
)

当我将一个表行解析为我的对象时,对于一个 int 或一个字符串,我希望做类似的事情:

ActivityID = (int)dataReader["activity_id"];
IPAddress = (string)dataReader["ip_address"];

但是我该如何处理时间戳列呢?我在任何地方都找不到“时间戳”数据类型。我知道 Sql Server 将时间戳存储为一个 8 字节的二进制文件,但这在 .NET 中通常等同于什么?

编辑添加: 一些额外的信息...这是从我们大型机上的 DB2 表通过 Sql Server View 返回的一行。 “Rowversion”不是一个选项,DB2 将该列作为时间戳传递。如果 timestamp 和 rowversion 相同,也许我可以将其视为一个,但否则我只能使用 timestamp。

再次编辑添加:这个项目会让我抓狂。至少,这将是一次短途旅行。无论如何,是的@JoelC,这是大型机上 DB2 数据库的 Sql Server View 。我终于找到了我们的一位 DBA,他轻蔑地解释说,“当然”DB2 TIMESTAMP 在 Sql Server View 中作为日期时间出现。从他的语气来看,我猜只有菜鸟不知道这一点。这就是为什么他在实际 View 中将其命名为“datetime”,Duh! (我在我的例子中给了它一个不同的名字,以免触发对命名约定的评论——实际的数据模型图说它是一个 TIMESTAMP 并将其命名为时间戳)。因此,在这种情况下,显然必须将其转换为 DateTime。我想我可能会开始考虑成为一名 DBA,这样我也可以把程序员逼疯。很抱歉,如果我误导了这个问题的任何响应者 - 这是无意的,因为我实际上期望时间戳是时间戳。傻我。尤其要感谢 Microsoft 在字节数组数据类型与日期和时间无关时将其命名为“时间戳”。我没有最模糊的想法将哪个响应标记为答案。叹息。

最佳答案

根据 this post

您必须将其转换为字节数组。

byte[] dt = dataReader["dt"] as byte[];

关于c# - T-Sql 中的时间戳在 C# 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6334777/

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