gpt4 book ai didi

c# - 如何在 SQL Server 中存储/检索时间戳?

转载 作者:太空狗 更新时间:2023-10-29 17:39:32 25 4
gpt4 key购买 nike

我有一个表,其中每一行都需要一个时间戳来标记它被插入的时间。我没有太多的数据库经验,但有些事情告诉我,这最好在数据库端自动处理,例如通过存储过程。

在 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())

但我得到的信息是

The ALTER TABLE SQL construct is not supported The query cannot be represented graphically in the Diagram and Criteria Pane.

所以我改为以图形方式添加它。首先“打开表定义”并在列名下添加 CreatedDate,在数据类型下添加日期时间。删除允许空值检查。然后在我添加的列属性中

getutcdate()

在名为“默认值或绑定(bind)”的行中的常规部分下。每当插入新行时,数据库都会自动为其提供当前日期和时间作为时间戳。

最佳答案

要在表中创建一个 CreatedDate 列,请像这样创建它:

ALTER TABLE dbo.MyTable ADD CreatedDate datetime NOT NULL DEFAULT (GetUtcDate())

编辑:如果之后您想在每次更新该记录时更新值,您可以将 GetUtcDate() 重新分配给该列或另一列(我将其称为 Createddate,因此不应使用在更新中,但您可以添加另一个或将其重命名为 Modifiedate)。我肯定会在执行 UPDATE 的存储过程中包含此类列的更新,这里不需要触发器。

关于c# - 如何在 SQL Server 中存储/检索时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com