我正在尝试开发一个模型对象来保存Sql Server中的一行数据,除了T-Sql/SqlServer时间戳之外,我对如何做到这一点非常清楚。表定义如下:
CREATE TABLE activity (
activity_id int
, ip_address varchar(39)
, user_id varchar(255)
, message_text
, dt timestamp
)
当我将表格行解析为对象时,对于整数或字符串,我期望做如下操作:
ActivityID = (int)dataReader["activity_id"];
IPAddress = (string)dataReader["ip_address"];
那么时间戳列应该怎么处理呢?我找不到任何“时间戳”数据类型。我知道Sql Server将时间戳存储为8字节二进制,但在.NET中通常等价于什么?
编辑:加一点额外信息...这是从我们的主机上的DB2表返回的一行,通过Sql Server视图进行传递。“Rowversion”不是选项,而且DB2将该列作为时间戳处理。如果时间戳和Rowversion是相同的,那么我可以将其视为一个,否则我只能使用时间戳。
再次编辑以添加: 这个项目会让我疯掉。 至少,它将是一个短暂的旅程。 无论如何,是的@JoelC这是一个针对主机上的DB2数据库的Sql Server视图。 我最终能够追踪到我们的其中一位DBA,他不屑地解释说,“当然”,DB2时间戳会被传递为Sql Server视图中的日期时间。从他的语气中我想,只有新手才不知道这一点。这就是为什么他在实际视图中将其命名为“datetime”。(我在我的示例中给它起了一个不同的名称,以避免触发有关命名约定的评论 - 实际数据模型图表明它是时间戳并将其命名为timestamp)。因此,在这种情况下,显然必须将其转换为DateTime。我想我可能要考虑成为一个DBA,这样我也可以让程序员发疯。如果我误导了任何问题的回答者,请原谅我 - 这是无意中的,因为我实际上预计时间戳会是一个时间戳。我真傻。尤其感谢微软将一个字节数组数据类型命名为“时间戳”,而它与日期和时间无关。 我没有最微小的想法该标记哪个答案。叹气。
DateTime
对象怎么样?它可以保存您的时间戳。 - Rahulrowversion
而不是timestamp
- 请参阅http://msdn.microsoft.com/en-us/library/ms182776.aspx。 - Steve Townsend