我想在c#?
中为timestamp数据类型指定默认值我在c#中有一个表对象。
答案 0 :(得分:2)
SQL TimeStamp基于sql server上的插入/更新顺序。无法从C#中分配它。我怀疑SQL甚至会允许你更新TimeStamp类型的列。
TimeStamp是二进制序列。 (我相信8个字节。)与DateTime没有关联。在页面上无法显示给用户。
如果要在上次修改或首次创建记录时显示用户,则必须维护DateTime类型的单独字段,并使用sprocs或触发器更新应用程序或sql中的值。
答案 1 :(得分:1)
根据documentation,Transact-SQL 时间戳数据类型只是一个递增的数字,不会保留日期或时间。您无法将其转换为有意义的DateTime
值。
文档说它是一个8字节的值。因此,如果它存储在System.Data.Linq.Binary
中,您可以使用以下代码将其转换为long
:
System.Data.Linq.Binary timestampValue;
// Somehow get a reference to the SQL timestamp you're interested in
// Use BitConverter to convert the 8 bytes to a long
long timestampLong = BitConverter.ToInt64(timestampValue.ToArray(), 0);
您可以尝试通过调用带有DateTime
值的构造函数将该值转换为ticks
,但结果将毫无意义。如果ticks
值超出范围,您可能还会遇到异常。
答案 2 :(得分:0)
对于DateTime对象,只需使用
var d = new DateTime();
答案 3 :(得分:0)
DateTime d = new DateTime(2009,3,23);