[英]SQL Timestamp to datetime on C#
我的SQL
表中有以下列:
RECORDTIMESTAMP
0x000000000005B2A4
0x000000000005B2A5
0x000000000005B2A6
而且我需要在我的C#程序上返回此值。 该属性的声明如下:
public DateTime? RecordTimeStamp{ get; set; }
我的方法是:
RecordTimeStamp = DateTime.Parse(row["RecordTimeStamp"].ToString()),
错误消息如下:
"The string was not recognized as a valid DateTime. There is an unknown word starting at index 0.",
我还尝试将atribbute声明为字符串,但是它也不起作用。
有任何想法吗?
这里有一个常见的误解: Timestamp
并非实际时间。
这是一个错误的命名。 这就是为什么在六个版本之前将其重命名为ROWVERSION
原因。 Timestamp
仍仅用作别名,带有清晰的“已弃用”标记。 从https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/rowversion-transact-sql :
timestamp
是rowversion
数据类型的同义词,并受数据类型同义词的行为的影响。 在DDL语句中,尽可能使用rowversion
代替timestamp
。 有关更多信息,请参见数据类型同义词(Transact-SQL) 。Transact-SQL
timestamp
数据类型与ISO标准中定义的timestamp
数据类型不同。注意
不建议使用
timestamp
语法。 将来的Microsoft SQL Server版本将删除此功能。 避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
它看起来像一个rowversion列(尽管它不是时间标记,但在历史上一直被称为“ timestamp”列)。 rowversion不是时间-它只是一个不透明的单调递增整数,除了让您发现已发生更改外,其他什么都没有。 时间戳通常用于乐观并发检查,但没有实际意义。 根据大小的不同, long
或byte[]
或string
可能适合存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.