C# 将时间戳(数据库)转换为日期时间(C)

C# 将时间戳(数据库)转换为日期时间(C),c#,ado.net,timestamp,C#,Ado.net,Timestamp,在我的SQL Server表中,我有一列数据类型timestamp,我想转换为C中的DateTime。您不能。时间戳数据类型是rowversion的别名;它是一个二进制递增值,既不包含日期和时间,也不基于日期和时间。这是不可能的 时间戳数据类型只是一个递增的数字,而不是 保留日期或时间 时间戳类型不是日期或时间的表示,而只是生成的数字,保证在数据库中是唯一的。因此,它不能直接转换 执行粗略转换的唯一方法是定期将当前时间和时间戳存储在新表中,然后选择最接近要转换的时间戳的时间 或者,您可能希望向d

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

您不能。时间戳数据类型是rowversion的别名;它是一个二进制递增值,既不包含日期和时间,也不基于日期和时间。

这是不可能的

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


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

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


或者,您可能希望向datetime类型的表中添加一个新列,并在行发生更改时更新该列。

Transact-SQL时间戳数据类型是一种二进制数据类型,没有与时间相关的值….,时间戳既不是日期也不是时间。因此,您不能这样做。。。。。见BOL:

时间戳:


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

如果我没有弄错,事实上rowversion是时间戳的别名。取决于DBRMS。在Sybase 12中,您找不到DateTime作为类型,它总是显示一个名为timestamp的类型,它实际上是一个DateTime,只有另一种格式。@Offler:我假设SQL Server的OP是指SQL Server,而不是任何其他DBRM;