我应该在代码中插入当前日期时间还是在数据库服务器中设置

时间:2012-05-16 09:36:22

标签: c# .net sql-server datetime insert

我制作了表单订阅表单。在插入数据时,我会将订阅日期和时间放在那里。 我们应该将订阅日期时间放在代码后面还是mssql server中作为默认值。

2 个答案:

答案 0 :(得分:3)

我认为这是个人选择,尽管我总是使用CURRENT_TIMESTAMP

在SQL中执行此类操作

我的理由是为什么要在查询中添加一个并不真正需要的额外参数,这只是你必须生成的额外数据。

正如已经提到的,在代码隐藏中添加它可能有助于代码可读性但我不同意,当你调用一个过程时,你不总是需要知道它存储的内容以及它是如何做的,你只需要知道它的作用。

作为一个例子,我有很多程序可以编辑我的数据库中的东西,作为一个辅助任务,他们也会更新审计表,所以我有一个正在做的事情的日志。程序员调用这些程序并不需要知道这一点,因为程序主要功能是在主表中插入或编辑数据,生成的审计跟踪只是关于数据的数据,与程序员正在做的事情无关。

如果我要将所有审计参数添加到代码中的每个SP中,那么将会有5-6个额外的参数,这些参数会使我的代码隐藏变得混乱,并使事情变得更复杂。

在您的方案中,将数据插入数据库的人是否需要知道它记录数据插入的时间?我猜可能并非如此,因此没有必要在代码隐藏中生成日期。

答案 1 :(得分:0)

如果您在服务器(共享主机)中托管应用程序,请尝试以UTC格式存储日期和时间。您可以使用GETUTCDATE()以UTC格式存储日期时间。