c# – 如何在SQL Server中存储/检索时间戳?
我有一个表,其中每行需要一个标记其插入时间的时间戳.我没有很多的数据库体验,但有些事情告诉我,这最好在数据库端自动处理,例如通过存储过程.
在MS SQL中有一个时间戳数据类型,但是读取它,它被视为一系列数字,而不是作为C#中的DateTime对象.那么如果我不得不进行转换,那么它不能只是一个NVARCHAR数据类型? 所以简单地说,当插入到表中时,最简单的方法是(自动?)在行上放置一个时间戳? 编辑:表的定义很简单.目前它只有两列,仍然缺少时间戳列. SqlCommand command = con.CreateCommand(); command.CommandText = "INSERT INTO Bio VALUES (" + "@ID,@Name)"; command.Parameters.AddWithValue("ID",number); command.Parameters.AddWithValue("Name",name); try { SqlDataReader thisReader = command.ExecuteReader(); thisReader.Close(); } catch { // Do something }; 解决方案好的,现在工作了.我首先尝试通过Visual Studio 2008中的“服务器资源管理器”窗口添加新列.查找我的数据库,右键单击并选择“新建查询”.然后输入类似的东西 ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate()) 但是我收到了这个消息
所以我以图形方式添加了它.第一个“打开表定义”,并在“数据类型”下的“列名称”和“日期时间”下添加CreatedDate.删除允许空值检查.然后在我添加的列属性 getutcdate() 在“一般”部分的行中,称为“默认值或绑定”.每当插入新行时,数据库将自动将其当前日期和时间作为时间戳给出. 解决方法
在表中创建一个CreatedDate列,就像这样创建一个列:
ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate()) 编辑:如果之后,您希望在该记录的每次更新中更新该值,您可以将GetUtcDate()重新分配给该列或另一个列(我称之为Createddate,因此不应在更新中使用,但您可以添加另一个一个或重命名它Modifieddate).我肯定会在UPDATE的存储过程中包含这样的列的更新,这里不需要触发器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |